コード例 #1
0
        public void SplitFilter_SplitDate_FieldDefaulting(PXCache sender, PXFieldDefaultingEventArgs e)
        {
            SplitFilter filter = (SplitFilter)e.Row;

            if (filter == null)
            {
                return;
            }

            FABookBalance bal = PXSelect <FABookBalance, Where <FABookBalance.assetID, Equal <Current <SplitFilter.assetID> > >, OrderBy <Desc <FABookBalance.updateGL> > > .SelectSingleBound(this, new object[] { filter });

            if (bal != null)
            {
                if (string.IsNullOrEmpty(bal.CurrDeprPeriod) && !string.IsNullOrEmpty(bal.LastDeprPeriod))
                {
                    e.NewValue = FABookPeriodIDAttribute.PeriodStartDate(this, FABookPeriodIDAttribute.PeriodPlusPeriod(this, bal.LastDeprPeriod, 1, bal.BookID), bal.BookID);
                }
                else
                {
                    FABookPeriod todayPeriod = FABookPeriodIDAttribute.FABookPeriodFromDate(this, Accessinfo.BusinessDate, bal.BookID);
                    e.NewValue = string.CompareOrdinal(bal.CurrDeprPeriod, todayPeriod.FinPeriodID) > 0 ? FABookPeriodIDAttribute.PeriodStartDate(this, bal.CurrDeprPeriod, bal.BookID) : Accessinfo.BusinessDate;
                }
            }
            else
            {
                e.NewValue = Accessinfo.BusinessDate;
            }
        }
コード例 #2
0
        protected virtual void _(Events.RowSelected <SplitParams> e)
        {
            SplitFilter filter = (SplitFilter)e.Cache.Graph.Caches <SplitFilter>().Current;

            (decimal minValue, decimal maxValue) = AssetMaint.GetSignedRange(filter.Cost);

            e.Cache.Adjust <PXDBDecimalAttribute>(e.Row)
            .For <SplitParams.cost>(decimalAttr =>
            {
                decimalAttr.MinValue = (double)minValue;
                decimalAttr.MaxValue = (double)maxValue;
            });
        }
コード例 #3
0
        public void SplitFilter_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
        {
            SplitFilter filter = (SplitFilter)e.Row;

            if (filter == null)
            {
                return;
            }

            PXProcessingStep[] targets = PXAutomation.GetProcessingSteps(this);
            if (targets.Length > 0)
            {
                Splits.SetProcessTarget(targets[0].GraphName,
                                        targets.Length > 1 ? null : targets[0].Name,
                                        targets[0].Actions[0].Name,
                                        targets[0].Actions[0].Menus[0],
                                        filter.SplitDate,
                                        filter.SplitPeriodID,
                                        null, null, null, null, null,
                                        filter.DeprBeforeSplit,
                                        null,
                                        filter.AssetID);
            }
            else
            {
                throw new PXException(SO.Messages.MissingMassProcessWorkFlow);
            }

            Splits.SetProcessVisible(false);
            Splits.SetProcessAllEnabled(filter.AssetID != null && filter.SplitPeriodID != null);
            Splits.SetProcessAllCaption(Messages.Split);

            Splits.Cache.AllowInsert = filter.AssetID != null;
            Splits.Cache.AllowUpdate = filter.AssetID != null;
            Splits.Cache.AllowDelete = true;

            PXUIFieldAttribute.SetEnabled <SplitParams.cost>(Splits.Cache, null, true);
            PXUIFieldAttribute.SetEnabled <SplitParams.splittedQty>(Splits.Cache, null, true);
            PXUIFieldAttribute.SetEnabled <SplitParams.ratio>(Splits.Cache, null, true);
            Numbering nbr = assetNumbering.Select();

            PXUIFieldAttribute.SetEnabled <SplitParams.splittedAssetCD>(Splits.Cache, null, nbr == null || nbr.UserNumbering == true);

            PXUIFieldAttribute.SetEnabled <SplitFilter.deprBeforeSplit>(sender, filter, fasetup.Current.AutoReleaseDepr == true);

            FixedAsset asset = PXSelect <FixedAsset, Where <FixedAsset.assetID, Equal <Required <SplitFilter.assetID> > > > .Select(this, filter.AssetID);

            PXUIFieldAttribute.SetVisible <SplitFilter.deprBeforeSplit>(sender, filter, asset == null || asset.Depreciable == true);
        }
コード例 #4
0
        public void SplitParams_SplittedQty_FieldUpdated(PXCache sender, PXFieldUpdatedEventArgs e)
        {
            SplitParams parms  = (SplitParams)e.Row;
            SplitFilter filter = Filter.Current;

            if (parms == null || filter == null)
            {
                return;
            }

            object rounded = parms.SplittedQty * filter.Cost / filter.Qty;

            sender.RaiseFieldUpdating <SplitParams.cost>(parms, ref rounded);
            parms.Cost = (decimal?)rounded;
            rounded    = parms.SplittedQty * 100 / filter.Qty;
            sender.RaiseFieldUpdating <SplitParams.ratio>(parms, ref rounded);
            parms.Ratio = (decimal?)rounded;
        }
コード例 #5
0
        public void SplitFilter_AssetID_FieldVerifying(PXCache sender, PXFieldVerifyingEventArgs e)
        {
            SplitFilter filter = (SplitFilter)e.Row;
            FATran      tran   = PXSelect <FATran, Where <FATran.assetID, Equal <Required <SplitFilter.assetID> >, And <FATran.released, NotEqual <True> > > > .Select(this, e.NewValue);

            if (tran != null)
            {
                if (filter.AssetID != null)
                {
                    FixedAsset asset = PXSelect <FixedAsset, Where <FixedAsset.assetID, Equal <Required <SplitFilter.assetID> > > > .Select(this, filter.AssetID);

                    e.NewValue = asset.AssetCD;
                }
                else
                {
                    e.NewValue = null;
                }
                throw new PXSetPropertyException(Messages.AssetHasUnreleasedTran);
            }
        }
コード例 #6
0
        public void SplitParams_Ratio_FieldUpdated(PXCache sender, PXFieldUpdatedEventArgs e)
        {
            SplitParams parms  = (SplitParams)e.Row;
            SplitFilter filter = Filter.Current;

            if (parms == null || filter == null)
            {
                return;
            }

            object rounded;

            if (parms.SplittedQty == null || parms.SplittedQty == 0m)
            {
                rounded = parms.Ratio * filter.Qty / 100;
                sender.RaiseFieldUpdating <SplitParams.splittedQty>(parms, ref rounded);
                parms.SplittedQty = (decimal?)rounded;
            }
            rounded = parms.Ratio * filter.Cost / 100;
            sender.RaiseFieldUpdating <SplitParams.cost>(parms, ref rounded);
            parms.Cost = (decimal?)rounded;
        }
コード例 #7
0
        public void SplitParams_Cost_FieldUpdated(PXCache sender, PXFieldUpdatedEventArgs e)
        {
            SplitParams parms  = (SplitParams)e.Row;
            SplitFilter filter = Filter.Current;

            if (parms == null || filter == null)
            {
                return;
            }

            object rounded;

            if (parms.Qty == null || parms.Qty == 0m)
            {
                rounded = parms.Cost * filter.Qty / filter.Cost;
                sender.RaiseFieldUpdating <SplitParams.qty>(parms, ref rounded);
                parms.Qty = (decimal?)rounded;
            }
            rounded = parms.Cost * 100 / filter.Cost;
            sender.RaiseFieldUpdating <SplitParams.ratio>(parms, ref rounded);
            parms.Ratio = (decimal?)rounded;
        }
コード例 #8
0
            public void AddFilter(IFilter <PublishContext <T> > filter)
            {
                var splitFilter = new SplitFilter <PublishContext <TMessage>, PublishContext <T> >(filter, ContextProvider, InputContextProvider);

                _builder.AddFilter(splitFilter);
            }
                public void AddFilter(IFilter <SendContext <TMessage> > filter)
                {
                    var splitFilter = new SplitFilter <PublishContext <TMessage>, SendContext <TMessage> >(filter, MergeContext, FilterContext);

                    _builder.AddFilter(splitFilter);
                }
コード例 #10
0
            public void AddFilter(IFilter <TFilter> filter)
            {
                var splitFilter = new SplitFilter <TContext, TFilter>(filter, _contextProvider, _inputContextProvider);

                _builder.AddFilter(splitFilter);
            }