コード例 #1
0
        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);
        }
コード例 #2
0
        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);
                    }
                }
            }
        }