Your requirement (i.) can be achieved by using function authorization (KBA 2007094 and OSS note 201696). But this won't be depended upon PO document type.
If you make the condition field as display from function authorization, then it will be applicable for all PO document types.
As per your requirement, you need to use the badi ME_PROCESS_PO_CUST to built your own logic.