/// <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); }
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); }
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); } } } } }
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); }
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); } }