protected virtual void SetPOAdjustAdjdAmt(POAdjust row) { if (row == null) { return; } var order = POOrder.PK.Find(Base, row.AdjdOrderType, row.AdjdOrderNbr); if (order != null) { if (order.CuryID == Base.Document.Current.CuryID) { POAdjustments.Cache.SetValueExt <POAdjust.curyAdjdAmt>(row, row.CuryAdjgAmt); } else { PXCurrencyAttribute.CuryConvBase <POAdjust.adjgCuryInfoID>(POAdjustments.Cache, row, row.CuryAdjgAmt ?? 0, out decimal baseCuryAmt); PXCurrencyAttribute.CuryConvCury(Base.Caches <POOrder>(), order, baseCuryAmt, out decimal orderCuryAmt); POAdjustments.Cache.SetValueExt <POAdjust.curyAdjdAmt>(row, orderCuryAmt); } } POAdjustments.Cache.SetValueExt <POAdjust.adjdAmt>(row, row.AdjgAmt); }
protected virtual void LoadPOOrdersByFilter() { var orderSelect = new PXSelect <POOrder, Where <POOrder.status, In3 <POOrderStatus.open, POOrderStatus.completed>, And <POOrder.orderType, In3 <POOrderType.regularOrder, POOrderType.dropShip> > > >(Base); var filter = LoadOrders.Current; if (filter.BranchID != null) { orderSelect.WhereAnd <Where <POOrder.branchID, Equal <Current <LoadOrdersFilter.branchID> > > >(); } if (filter.FromDate != null) { orderSelect.WhereAnd <Where <POOrder.orderDate, GreaterEqual <Current <LoadOrdersFilter.fromDate> > > >(); } if (filter.ToDate != null) { orderSelect.WhereAnd <Where <POOrder.orderDate, LessEqual <Current <LoadOrdersFilter.toDate> > > >(); } if (filter.StartOrderNbr != null) { orderSelect.WhereAnd <Where <POOrder.orderNbr, GreaterEqual <Current <LoadOrdersFilter.startOrderNbr> > > >(); } if (filter.EndOrderNbr != null) { orderSelect.WhereAnd <Where <POOrder.orderNbr, LessEqual <Current <LoadOrdersFilter.endOrderNbr> > > >(); } if (PXAccess.FeatureInstalled <FeaturesSet.vendorRelations>()) { orderSelect.WhereAnd <Where <POOrder.payToVendorID, Equal <Current <APPayment.vendorID> > > >(); } else { orderSelect.WhereAnd <Where <POOrder.vendorID, Equal <Current <APPayment.vendorID> > > >(); } orderSelect.WhereAnd <Where <POOrder.curyUnprepaidTotal, Greater <decimal0> > >(); if (filter.OrderBy == LoadOrdersFilter.orderBy.ByDate) { orderSelect.OrderByNew <OrderBy <Asc <POOrder.orderDate, Asc <POOrder.orderNbr> > > >(); } else { orderSelect.OrderByNew <OrderBy <Asc <POOrder.orderNbr> > >(); } var orders = orderSelect.SelectWindowed(0, filter.MaxNumberOfDocuments ?? 0, filter); foreach (POOrder order in orders) { var newAdjustment = new POAdjust() { AdjgDocType = Base.Document.Current.DocType, AdjgRefNbr = Base.Document.Current.RefNbr, AdjdOrderType = order.OrderType, AdjdOrderNbr = order.OrderNbr, AdjdDocType = POAdjust.EmptyApDocType, AdjdRefNbr = string.Empty, AdjNbr = Base.Document.Current.AdjCntr }; POAdjust oldAdjustment = new PXSelect <POAdjust, Where <POAdjust.adjgDocType, Equal <Current <POAdjust.adjgDocType> >, And <POAdjust.adjgRefNbr, Equal <Current <POAdjust.adjgRefNbr> >, And <POAdjust.adjdOrderType, Equal <Required <POAdjust.adjdOrderType> >, And <POAdjust.adjdOrderNbr, Equal <Required <POAdjust.adjdOrderNbr> >, And <POAdjust.released, Equal <False>, And <POAdjust.isRequest, Equal <False> > > > > > > >(Base) .Select(newAdjustment.AdjdOrderType, newAdjustment.AdjdOrderNbr); if (oldAdjustment == null) { newAdjustment = POAdjustments.Insert(newAdjustment); } else { POAdjustments.Cache.RaiseFieldDefaulting <POAdjust.curyAdjgAmt>(oldAdjustment, out object newValue); if ((decimal?)newValue < oldAdjustment.CuryAdjgAmt) { var copy = POAdjustments.Cache.CreateCopy(oldAdjustment); POAdjustments.Cache.SetValueExt <POAdjust.curyAdjgAmt>(copy, newValue); POAdjustments.Cache.Update(copy); } } } }