protected void _(Events.FieldUpdated <LumShipmentPlan.prodOrdID> e) { var row = e.Row as LumShipmentPlan; if (row == null) { return; } AMProdItem prodItem = SelectFrom <AMProdItem> .Where <AMProdItem.prodOrdID.IsEqual <@P.AsString> > .View.Select(this, row.ProdOrdID); row.QtyToProd = prodItem.QtytoProd; row.QtyComplete = prodItem.QtyComplete; foreach (AMProdAttribute prodAttr in SelectFrom <AMProdAttribute> .Where <AMProdAttribute.prodOrdID.IsEqual <@P.AsString> > .View.Select(this, prodItem.ProdOrdID)) { switch (prodAttr.AttributeID) { case "PRODLINE": row.ProdLine = SelectFrom <CSAttributeDetail> .Where <CSAttributeDetail.attributeID.IsEqual <@P.AsString> .And <CSAttributeDetail.valueID.IsEqual <@P.AsString> > > .View .SelectSingleBound(this, null, prodAttr.AttributeID, prodAttr.Value).TopFirst?.Description; break; case "LOTNO": row.LotSerialNbr = prodAttr.Value; break; case "TOTSHIPWO": row.TotalShipNbr = Convert.ToInt32(prodAttr.Value); break; } } AMProdItemExt prodItemExt = prodItem.GetExtension <AMProdItemExt>(); if (prodItemExt.UsrSOOrderNbr != null) { PXResult <SOOrder, SOLine> sOResult = (PXResult <SOOrder, SOLine>)SelectFrom <SOOrder> .InnerJoin <SOLine> .On <SOOrder.orderType.IsEqual <SOLine.orderType> .And <SOOrder.orderNbr.IsEqual <SOLine.orderNbr> > > .Where <SOLine.orderType.IsEqual <@P.AsString> .And <SOLine.orderNbr.IsEqual <@P.AsString> .And <SOLine.lineNbr.IsEqual <@P.AsInt> > > > .View .Select(this, prodItemExt.UsrSOOrderType, prodItemExt.UsrSOOrderNbr, prodItemExt.UsrSOLineNbr); SOLine soLine = sOResult; SOOrder soOrder = sOResult; PXFieldState valueExt = Order.Cache.GetValueExt((object)soOrder, PX.Objects.CS.Messages.Attribute + ENDC) as PXFieldState; row.Customer = (string)valueExt.Value; row.OrderNbr = soOrder.OrderNbr; row.OrderType = soOrder.OrderType; row.CustomerLocationID = soOrder.CustomerLocationID; row.CustomerOrderNbr = soOrder.CustomerOrderNbr; row.OrderDate = soOrder.OrderDate; row.LineNbr = soLine.LineNbr; row.InventoryID = soLine.InventoryID; row.OpenQty = soLine.OpenQty; row.OrderQty = soLine.OrderQty; row.RequestDate = soLine.RequestDate; row.CustomerPN = soLine.AlternateID; row.CartonSize = CSAnswers.PK.Find(this, InventoryItem.PK.Find(this, row.InventoryID).NoteID, SOShipmentEntry_Extension.CartonSize)?.Value; } LumShipmentPlan aggrShipPlan = SelectFrom <LumShipmentPlan> .Where <LumShipmentPlan.prodOrdID.IsEqual <@P.AsString> > .AggregateTo <Max <LumShipmentPlan.nbrOfShipment, Max <LumShipmentPlan.endCartonNbr> > > .View.Select(this, row.ProdOrdID); row.NbrOfShipment = aggrShipPlan.NbrOfShipment == null ? 1 : aggrShipPlan.NbrOfShipment + 1; row.StartCartonNbr = (aggrShipPlan.EndCartonNbr ?? 0) + 1; }