コード例 #1
0
        /// <summary>
        /// For a given data record containing a deferral code and a default deferral term,
        /// generates a warning message when the specified deferral code is flexible, but the specified
        /// default deferral term is zero.
        /// </summary>
        /// <param name="sender">The cache containing the records.</param>
        /// <param name="row">The currently processed data record.</param>
        /// <typeparam name="DeferralCode">The DAC field type for deferral code.</param>
        /// <typeparam name="DefaultTerm">The DAC field type for default deferral term.</param>
        public static void CheckZeroDefaultTerm <DeferralCode, DefaultTerm>(PXCache sender, object row)
            where DeferralCode : IBqlField
            where DefaultTerm : IBqlField
        {
            string  deferralCodeValue = sender.GetValue <DeferralCode>(row) as string;
            decimal?defaultTermValue  = sender.GetValue <DefaultTerm>(row) as decimal?;

            bool displayWarning = false;

            if (deferralCodeValue != null)
            {
                DRDeferredCode deferralCodeRecord =
                    PXSelect <
                        DRDeferredCode,
                        Where <DRDeferredCode.deferredCodeID, Equal <Required <DRDeferredCode.deferredCodeID> > > >
                    .Select(sender.Graph, deferralCodeValue);

                if (deferralCodeRecord != null &&
                    DeferredMethodType.RequiresTerms(deferralCodeRecord) &&
                    defaultTermValue.HasValue &&
                    defaultTermValue == 0)
                {
                    displayWarning = true;
                }
            }

            sender.RaiseExceptionHandling(
                typeof(DefaultTerm).Name,
                row,
                defaultTermValue,
                displayWarning ? new PXSetPropertyException(Messages.NoDefaultTermSpecified, PXErrorLevel.Warning) : null);
        }
コード例 #2
0
        public static void SetComponentControlsState(PXCache cache, INComponent component)
        {
            bool disabledFixedAmtAndPercentage = false;

            if (PXAccess.FeatureInstalled <FeaturesSet.aSC606>())
            {
                disabledFixedAmtAndPercentage = true;
                PXUIFieldAttribute.SetEnabled <INComponent.amtOption>(cache, null, false);
                PXUIFieldAttribute.SetEnabled <INComponent.fixedAmt>(cache, null, false);
                PXUIFieldAttribute.SetEnabled <INComponent.percentage>(cache, null, false);
                PXDefaultAttribute.SetPersistingCheck <INComponent.amtOption>(cache, null, PXPersistingCheck.Nothing);
                PXDefaultAttribute.SetPersistingCheck <INComponent.fixedAmt>(cache, null, PXPersistingCheck.Nothing);
                PXDefaultAttribute.SetPersistingCheck <INComponent.percentage>(cache, null, PXPersistingCheck.Nothing);
            }

            if (component == null)
            {
                return;
            }

            bool isResidual = component.AmtOption == INAmountOption.Residual;

            PXDefaultAttribute.SetPersistingCheck <INComponent.deferredCode>(cache, component, isResidual ? PXPersistingCheck.Nothing : PXPersistingCheck.NullOrBlank);

            PXUIFieldAttribute.SetEnabled <INComponent.deferredCode>(cache, component, isResidual == false);
            PXUIFieldAttribute.SetEnabled <INComponent.fixedAmt>(cache, component, disabledFixedAmtAndPercentage == false && component.AmtOption == INAmountOption.FixedAmt);
            PXUIFieldAttribute.SetEnabled <INComponent.percentage>(cache, component, disabledFixedAmtAndPercentage == false && component.AmtOption == INAmountOption.Percentage);

            var  code        = (DRDeferredCode)PXSelectorAttribute.Select <INComponent.deferredCode>(cache, component);
            bool enableTerms = DeferredMethodType.RequiresTerms(code) && isResidual == false;

            PXUIFieldAttribute.SetEnabled <INComponent.defaultTerm>(cache, component, enableTerms);
            PXUIFieldAttribute.SetEnabled <INComponent.defaultTermUOM>(cache, component, enableTerms);
        }
コード例 #3
0
        public static void CheckSameTermOnAllComponents(PXCache cache, IEnumerable <INComponent> components)
        {
            DRTerms.Term term = null;

            foreach (var component in components)
            {
                var code = (DRDeferredCode)PXSelectorAttribute.Select <INComponent.deferredCode>(cache, component);
                if (DeferredMethodType.RequiresTerms(code))
                {
                    if (term == null)
                    {
                        term = new DRTerms.Term(component.DefaultTerm, component.DefaultTermUOM);
                        continue;
                    }

                    if (term.Length != component.DefaultTerm || term.UOM != component.DefaultTermUOM)
                    {
                        if (cache.RaiseExceptionHandling <INComponent.defaultTerm>(component, component.DefaultTerm,
                                                                                   new PXSetPropertyException <INComponent.defaultTerm>(DR.Messages.DefaultTermMustBeTheSameForAllComponents)))
                        {
                            throw new PXRowPersistingException(typeof(INComponent.defaultTerm).Name, component.DefaultTerm, DR.Messages.DefaultTermMustBeTheSameForAllComponents);
                        }
                    }
                }
            }
        }
コード例 #4
0
        public static void SetDefaultTermControlsState(PXCache cache, InventoryItem item)
        {
            if (item == null)
            {
                return;
            }

            var  code        = (DRDeferredCode)PXSelectorAttribute.Select <InventoryItem.deferredCode>(cache, item);
            bool enableTerms = DeferredMethodType.RequiresTerms(code);

            PXUIFieldAttribute.SetEnabled <InventoryItem.defaultTerm>(cache, item, enableTerms);
            PXUIFieldAttribute.SetEnabled <InventoryItem.defaultTermUOM>(cache, item, enableTerms);
        }
コード例 #5
0
        public static void SetDefaultTerm(PXCache cache, object row, Type deferralCode, Type defaultTerm, Type defaultTermUOM)
        {
            if (row == null)
            {
                return;
            }

            var code = (DRDeferredCode)PXSelectorAttribute.Select(cache, row, deferralCode.Name);

            if (code == null || DeferredMethodType.RequiresTerms(code) == false)
            {
                cache.SetDefaultExt(row, defaultTerm.Name);
                cache.SetDefaultExt(row, defaultTermUOM.Name);
            }
        }