0

I am trying to enable a certain field when POOrder status is on "Pending Approval" like Description field but when I override it on POOrder_RowSelected event it still doesn't enable the field.

protected void POOrder_RowSelected(PXCache cache, PXRowSelectedEventArgs e, PXRowSelected InvokeBaseHandler)
    {
        if(InvokeBaseHandler != null)
            InvokeBaseHandler(cache, e);

        POOrder row = (POOrder)e.Row;
        if (row != null)
        {
            if (row.Hold == false && row.Status == POOrderStatus.Balanced) // Balance is indicated on Pending appoval
            {
                PXUIFieldAttribute.SetEnabled<POOrder.orderDesc>(cache, row, true);
            }
        }
    }
xxxAcuGeekxxx
  • 133
  • 11

1 Answers1

0

You can accomplish this by using Automation Steps.

Select your Purchase Order screen, and on Step ID select "NL Pending Approval". (See below)

Then locate "Purchase Order" TableName with FieldName "*" and unchecked the Disabled box. Then Save your changes.

enter image description here

Then you can extend the POOrderEntry graph and on RowSelected event handler add your custom logic(and set enable the desired fields):

public void POOrder_RowSelected(PXCache sender, PXRowSelectedEventArgs e, PXRowSelected InvokeBaseHandler)
    {
        if(InvokeBaseHandler != null)
           InvokeBaseHandler(cache, e);

        POOrder order= (POOrder)e.Row;
        if (order == null || Base.IsExport) return;

        if (order.Status == POOrderStatus.Balanced)
        {
            PXUIFieldAttribute.SetEnabled<POLine.orderDesc>(sender, order, true);
        }
    } 

Sample above would enable Description field when POOrder is with Balanced Status. Here is another link to similar question involving Custom User Fields: How to enable a custom field on PO301000 when the PO is in Open status?

cbetabeta
  • 605
  • 6
  • 11