Amend a SO with a status of "Shipping"
Hi all, we have a customer that has big sales orders with average 20 lines + and many of these lines they raise back to back purchase orders to satisfy the demand.
they do keep some items in stock and will create partial shipments for the items they are able to despatch.
unfortunately they create the shipment or schedule the shipment by using "Action > Create Shipment" and do not confirm shipment until they have received notification that the item has been delivered so they can keep track of what is outstanding and left to be scheduled
this leaves the SO with a status of "Shipping" even if it is just for 1 item of 1 line and everything else is outstanding.
with this status they are unable to amend the SO in anyway and would like the ability to change various aspects of the sales order, dates, qtys of undelivered items etc. but they cannot do this with that status
support have suggested deleting that shipment to amend the order but this could be 15 lines with different items/qtys etc so they want to avoid having to do this.
does anyone know if it is possible to be able to amend an SO with a shipment still showing as oustanding and the SO having a status of "Shipping" or have any suggestions of a work around?
below is their wording of the issue
"1. Requirement to update SOs with multiple shipments when scheduling deliveries for customers. Current workflow requires us to change the status of shipments to be confirmed, as the status of ‘shipping’ prevents users from updating Sos, Either we need an additional stage for ‘scheduled’ where a shipment is scheduled for delivery but not yet shipping and we can continue to edit the SOs, or we need to change how ‘shipping’ works so that we keep the SOs open but we don’t confirm the shipment. Confirming the shipment at present causes issues when invoicing and reporting sales of consignment to our supplier"
any thoughts/guesses welcome
thanks in advance.
I would first try to use Automation steps and adding the fields you want to edit to the fields tab. I believe that works for some of the fields. In the newer versions, they have moved Automation Steps to Workflow. If that does not work, you can use some variation of the customization below. It basically enables certain SOLine fields. You should be able to do something similar by attaching it so SOOrder_RowSelected and/or doing the SetEnabled on an SOOrder field.
protected void SOLine_RowSelected(PXCache cache, PXRowSelectedEventArgs e)
SOLine line = (SOLine)e.Row;
SOOrder order = Base.Document.Current;
if (order == null || line == null || Base.IsExport) return;
if (order.Status == SOOrderStatus.Hold || order.Status == SOOrderStatus.Shipping || order.Status == SOOrderStatus.BackOrder)
PXUIFieldAttribute.SetEnabled<PX.Objects.SO.SOLine.curyUnitPrice >(cache, line, true);
PXUIFieldAttribute.SetEnabled<PX.Objects.SO.SOLine.curyLineAmt >(cache, line, true);
PXUIFieldAttribute.SetEnabled<PXXByteExtPkg.SOLinePXExt.usrCuryPrintedUnitPrice>(cache, line, true);
PXUIFieldAttribute.SetEnabled<PXXByteExtPkg.SOLinePXExt.usrCuryPrintedLineAmt >(cache, line, true);
I dont know how our vendor did that but I requested that inventory issues is to be triggered during release of invoice. They did it via customization maybe. So for as long as no inventory issue is confirmed, all shipments and orders could still be corrected by Correct Shipment and Delete shipping document. Thereafter, SO status will be automatically revert to OPEN status. This is compatible to our setup as we would normally send invoices during delivery to save resources and time.