public virtual void SOLine_IsRUTROTDeductible_FieldVerifying(PXCache sender, PXFieldVerifyingEventArgs e) { SOLine tran = (SOLine)e.Row; if (tran == null) { return; } if (Base.Document.Current == null) { return; } if (e.NewValue == null || (bool)e.NewValue == false) { return; } string value = Rutrots.Current?.RUTROTType; InventoryItem item = (InventoryItem)InventoryItem.Select(tran.InventoryID); InventoryItemRUTROT itemRR = RUTROTHelper.GetExtensionNullable <InventoryItem, InventoryItemRUTROT>(item); if (!RUTROTHelper.IsItemMatchRUTROTType(value, item, itemRR, (bool)e.NewValue)) { sender.RaiseExceptionHandling <SOLineRUTROT.isRUTROTDeductible>(tran, false, new PXSetPropertyException <SOLineRUTROT.isRUTROTDeductible>(RUTROTMessages.LineDoesNotMatchDoc)); e.NewValue = false; throw new PXSetPropertyException <SOLineRUTROT.isRUTROTDeductible>(RUTROTMessages.LineDoesNotMatchDoc); } }
protected virtual void RUTROT_RUTROTType_FieldVerifying(PXCache sender, PXFieldVerifyingEventArgs e) { DocExt document = RUTROTHelper.GetExtensionNullable <Doc, DocExt>(Document.Current); RUTROT rutrot = (RUTROT)e.Row; if (document != null && document.IsRUTROTDeductible == true) { string value = (string)e.NewValue; foreach (Tran tran in Transactions.Select()) { TranExt tranRR = RUTROTHelper.GetExtensionNullable <Tran, TranExt>(tran); if (tranRR.GetInventoryID() != null) { InventoryItem item = PXSelect <InventoryItem, Where <InventoryItem.inventoryID, Equal <Required <InventoryItem.inventoryID> > > > .Select(Base, tranRR.GetInventoryID()); InventoryItemRUTROT itemRR = PXCache <InventoryItem> .GetExtension <InventoryItemRUTROT>(item); if (!RUTROTHelper.IsItemMatchRUTROTType(value, item, itemRR, itemRR?.IsRUTROTDeductible == true)) { sender.RaiseExceptionHandling <RUTROT.rUTROTType>(rutrot, rutrot.RUTROTType, new PXSetPropertyException <RUTROT.rUTROTType>(RUTROTMessages.LineDoesNotMatchDoc)); e.NewValue = rutrot.RUTROTType; break; } } } } }
protected virtual void SOLine_InventoryID_FieldVerifying(PXCache sender, PXFieldVerifyingEventArgs e) { if (!e.ExternalCall) { e.Cancel = true; } SOLine tran = (SOLine)e.Row; if (tran == null) { return; } if (Base.Document.Current == null) { return; } if (e.NewValue == null) { return; } string value = Rutrots.Current?.RUTROTType; InventoryItem item = (InventoryItem)InventoryItem.Select((int)e.NewValue); InventoryItemRUTROT itemRR = RUTROTHelper.GetExtensionNullable <InventoryItem, InventoryItemRUTROT>(item); if (!RUTROTHelper.IsItemMatchRUTROTType(value, item, itemRR, itemRR?.IsRUTROTDeductible == true)) { sender.RaiseExceptionHandling <SOLine.inventoryID>(tran, item.InventoryCD, new PXSetPropertyException <SOLine.inventoryID>(RUTROTMessages.LineDoesNotMatchDoc)); e.NewValue = item.InventoryCD; throw new PXSetPropertyException <SOLine.inventoryID>(RUTROTMessages.LineDoesNotMatchDoc); } }
protected virtual void RUTROT_RowPersisting(PXCache sender, PXRowPersistingEventArgs e) { RUTROT rutrot = (RUTROT)e.Row; DocExt doc = RUTROTHelper.GetExtensionNullable <Doc, DocExt>(Document.Current); bool treatAsError = doc?.GetDocumentHold() != true; PXErrorLevel errorLevel = treatAsError ? PXErrorLevel.Error : PXErrorLevel.Warning; if (WarnOnDeductionExceedsAllowance(doc, rutrot, errorLevel) && treatAsError) { sender.RaiseExceptionHandling <RUTROT.curyTotalAmt>(rutrot, rutrot.CuryTotalAmt, new PXSetPropertyException(rutrot.CuryAllowedAmt == 0.0m ? RUTROTMessages.PeopleAreRequiredForDeduction : RUTROTMessages.DeductibleExceedsAllowance, PXErrorLevel.Error)); } if (WarnUndistributedAmount(doc, rutrot, errorLevel, currencyinfo.Current ?? currencyinfo.SelectSingle()) && treatAsError) { sender.RaiseExceptionHandling <RUTROT.curyTotalAmt>(rutrot, rutrot.CuryTotalAmt, new PXSetPropertyException(RUTROTMessages.UndistributedAmount, PXErrorLevel.Error)); } if (doc != null && doc.IsRUTROTDeductible == true) { foreach (Tran tran in Transactions.Select()) { TranExt tranRR = RUTROTHelper.GetExtensionNullable <Tran, TranExt>(tran); if (tranRR.GetInventoryID() != null) { InventoryItem item = PXSelect <InventoryItem, Where <InventoryItem.inventoryID, Equal <Required <InventoryItem.inventoryID> > > > .Select(Base, tranRR.GetInventoryID()); InventoryItemRUTROT itemRR = PXCache <InventoryItem> .GetExtension <InventoryItemRUTROT>(item); if (!RUTROTHelper.IsItemMatchRUTROTType(rutrot.RUTROTType, item, itemRR, itemRR?.IsRUTROTDeductible == true)) { var exception = new PXSetPropertyException(RUTROTMessages.LineDoesNotMatchDoc, PXErrorLevel.RowError); Transactions.Cache.RaiseExceptionHandling(RUTROTHelper.IsRUTROTDeductible, tran, tranRR.IsRUTROTDeductible, exception); throw exception; } } } } }
public void CheckRUTROTLine(PXCache sender, IRUTROTable document, IRUTROTableLine line, RUTROT rutrot) { if (line != null && document != null && rutrot != null) { if (document.IsRUTROTDeductible == true) { if (line.GetInventoryID() != null) { string value = rutrot.RUTROTType; InventoryItem item = (InventoryItem)PXSelect <InventoryItem, Where <InventoryItem.inventoryID, Equal <Required <InventoryItem.inventoryID> > > > .Select(Base, line.GetInventoryID()); InventoryItemRUTROT itemRR = RUTROTHelper.GetExtensionNullable <InventoryItem, InventoryItemRUTROT>(item); if (!RUTROTHelper.IsItemMatchRUTROTType(value, item, itemRR, itemRR?.IsRUTROTDeductible == true)) { Base.Transactions.Cache.RaiseExceptionHandling <SOLine.inventoryID>(line, item.InventoryCD, new PXSetPropertyException <SOLine.inventoryID>(RUTROTMessages.LineDoesNotMatchDoc)); throw new PXSetPropertyException <SOLine.inventoryID>(RUTROTMessages.LineDoesNotMatchDoc); } } } } }