http://img208.imageshack.us/img208/4623/purchaseorderforanypaym.png
http://img10.imageshack.us/img10/4623/purchaseorderforanypaym.png
I've created a "Net Terms" payment method which can optionally present a message and "accept" checkbox, or (as per previous feature request) skip payment info page altogether.
UPDATE:
It would also simplify 'check for PO number' - no need to check payment method - the PO number is a property of the order
\src\Presentation\Nop.Web\Controllers\OrderController.cs
//-+
////purchase order number (we have to find a better to inject this information because it's related to a certain plugin)
//if (paymentMethod != null && paymentMethod.PluginDescriptor.SystemName.Equals("Payments.PurchaseOrder", StringComparison.InvariantCultureIgnoreCase))
if (!String.IsNullOrEmpty(order.PurchaseOrderNumber))
{
model.DisplayPurchaseOrderNumber = true;
model.PurchaseOrderNumber = order.PurchaseOrderNumber;
}
\src\Presentation\Nop.Web\Administration\Controllers\OrderController.cs
//-+
////purchase order number (we have to find a better to inject this information because it's related to a certain plugin)
var pm = _paymentService.LoadPaymentMethodBySystemName(order.PaymentMethodSystemName);
//if (pm != null && pm.PluginDescriptor.SystemName.Equals("Payments.PurchaseOrder", StringComparison.InvariantCultureIgnoreCase))
//purchase order number
if (!String.IsNullOrEmpty(order.PurchaseOrderNumber))
{
model.DisplayPurchaseOrderNumber = true;
model.PurchaseOrderNumber = order.PurchaseOrderNumber;
}
And, I should mention that a PO number property needs to be added here to persist between pages
_workContext.CurrentCustomer.PONumber;