private bool IsApplicable(APTran transaction, APRegister payment) { var projectId = LienWaiverProjectDataProvider.GetProjectId(Graph, transaction); return(AreThereAnyLienWaiverRecipientsForVendorClass(payment.VendorID, projectId) && DoesCommitmentAmountExceedMinimumCommitmentAmount(payment.VendorID, transaction)); }
public virtual bool AddPOOrderLines(IEnumerable <POLineRS> lines) { bool hasAdded = false; foreach (POLineRS line in lines.Where(l => (l.CuryExtCost + l.CuryRetainageAmt > l.CuryReqPrepaidAmt) && (l.Billed == false || l.LineType == POLineType.Service && l.Closed == false))) { var tran = new APTran { InventoryID = line.InventoryID, ProjectID = line.ProjectID, TaskID = line.TaskID, CostCodeID = line.CostCodeID, TaxID = line.TaxID, TaxCategoryID = line.TaxCategoryID, TranDesc = line.TranDesc, UOM = line.UOM, CuryUnitCost = line.CuryUnitCost, DiscPct = line.DiscPct, ManualPrice = true, ManualDisc = true, FreezeManualDisc = true, DiscountID = line.DiscountID, DiscountSequenceID = line.DiscountSequenceID, RetainagePct = line.RetainagePct, POOrderType = line.OrderType, PONbr = line.OrderNbr, POLineNbr = line.LineNbr, }; decimal?billedAndPrepaidQty = line.ReqPrepaidQty + line.OrderBilledQty; tran.Qty = (line.OrderQty <= billedAndPrepaidQty) ? line.OrderQty : line.OrderQty - billedAndPrepaidQty; decimal?billedAndPrepaidAmt = line.CuryReqPrepaidAmt + line.CuryOrderBilledAmt; if (billedAndPrepaidAmt == 0m) { tran.CuryLineAmt = line.CuryLineAmt; tran.CuryDiscAmt = line.CuryDiscAmt; } else if (line.CuryExtCost + line.CuryRetainageAmt <= billedAndPrepaidAmt) { tran.CuryLineAmt = 0m; tran.CuryDiscAmt = 0m; tran.CuryRetainageAmt = 0m; tran.CuryTranAmt = 0m; } else { decimal?prepaymentRatio = (line.CuryExtCost + line.CuryRetainageAmt - billedAndPrepaidAmt) / (line.CuryExtCost + line.CuryRetainageAmt); tran.CuryLineAmt = PXCurrencyAttribute.Round(Base.Transactions.Cache, tran, (prepaymentRatio * line.CuryLineAmt) ?? 0m, CMPrecision.TRANCURY); tran.CuryDiscAmt = PXCurrencyAttribute.Round(Base.Transactions.Cache, tran, (prepaymentRatio * line.CuryDiscAmt) ?? 0m, CMPrecision.TRANCURY); } Base.Transactions.Insert(tran); hasAdded = true; } Base.AutoRecalculateDiscounts(); return(hasAdded); }
private IEnumerable <LienWaiverGenerationKey> CreateGroupingKeysForPaymentByLines( IEnumerable <JointPayee> jointPayees, APRegister payment, APTran transaction) { var payees = jointPayees.Where(jp => jp.BillLineNumber == transaction.LineNbr).ToList(); return(CreateGroupingKeys(payees, payment, transaction)); }
public static void ClearInvoiceDetailsBalance(this APTran tran) { tran.CuryCashDiscBal = 0m; tran.CashDiscBal = 0m; tran.CuryRetainedTaxableAmt = 0m; tran.RetainedTaxableAmt = 0m; tran.CuryRetainedTaxAmt = 0m; tran.RetainedTaxAmt = 0m; tran.CuryRetainageBal = 0m; tran.RetainageBal = 0m; tran.CuryOrigRetainageAmt = 0m; tran.OrigRetainageAmt = 0m; tran.CuryOrigTranAmt = 0m; tran.OrigTranAmt = 0m; tran.CuryTranBal = 0m; tran.TranBal = 0m; tran.CuryOrigTaxableAmt = 0m; tran.OrigTaxableAmt = 0m; tran.CuryOrigTaxAmt = 0m; tran.OrigTaxAmt = 0m; }
public virtual IAddressBase GetToAddress(APInvoice invoice, APTran tran, GetToAddressLineDelegate del) { int?SOID = GetSOIDRelated(tran); if (SOID != null) { IAddressBase returnAddress = null; returnAddress = PXSelectJoin <FSAddress, InnerJoin < FSBranchLocation, On <FSBranchLocation.branchLocationAddressID, Equal <FSAddress.addressID> >, InnerJoin <FSServiceOrder, On <FSServiceOrder.branchLocationID, Equal <FSBranchLocation.branchLocationID> > > >, Where < FSServiceOrder.sOID, Equal <Required <FSServiceOrder.sOID> > > > .Select(Base, SOID) .RowCast <FSAddress>() .FirstOrDefault(); return(returnAddress); } return(del(invoice, tran)); }
public virtual decimal?GetVendorPreparedBalance(APAdjust adjustment) { FinDocumentExtKey actualDocLineKey = InvoiceDataProvider.GetSourceEntityKeyByRetainage(Graph, adjustment.AdjdDocType, adjustment.AdjdRefNbr, adjustment.AdjdLineNbr); decimal?fullAmount; if (adjustment.AdjdLineNbr == 0) { APInvoice bill = InvoiceDataProvider.GetInvoice(Graph, actualDocLineKey.Type, actualDocLineKey.RefNbr); fullAmount = bill.CuryOrigDocAmt + bill.CuryRetainageTotal; } else { APTran tran = TransactionDataProvider.GetTransaction(Graph, actualDocLineKey.Type, actualDocLineKey.RefNbr, actualDocLineKey.LineNbr); fullAmount = tran.CuryOrigTranAmt + tran.CuryRetainageAmt; } var totalJointAmountOwed = JointPayeeDataProvider.GetJointPayees(Graph, actualDocLineKey.RefNbr, actualDocLineKey.LineNbr) .Sum(jp => jp.JointAmountOwed.GetValueOrDefault()); var totalVendorPaymentAmount = GetTotalVendorPaymentAmount(adjustment, actualDocLineKey.RefNbr, actualDocLineKey.LineNbr); var currentVendorPaymentAmount = GetVendorPaymentAmount(adjustment); var reversedRetainageAmount = GetReversedRetainageAmount(actualDocLineKey.RefNbr, actualDocLineKey.LineNbr); return(fullAmount + reversedRetainageAmount - totalJointAmountOwed - (totalVendorPaymentAmount - currentVendorPaymentAmount)); }
public virtual void CheckQtyFromPO(PXCache sender, APTran tran, Action <PXCache, APTran> baseMethod) { baseMethod(sender, tran); if (tran.TranType == APDocType.Prepayment && !string.IsNullOrEmpty(tran.PONbr) && tran.POLineNbr != null) { POLine poLine = PXSelectReadonly <POLine, Where <POLine.orderType, Equal <Required <POLine.orderType> >, And <POLine.orderNbr, Equal <Required <POLine.orderNbr> >, And <POLine.lineNbr, Equal <Required <POLine.lineNbr> > > > > > .SelectWindowed(Base, 0, 1, tran.POOrderType, tran.PONbr, tran.POLineNbr); if (tran.Qty > poLine.OrderQty) { sender.RaiseExceptionHandling <APTran.qty>(tran, tran.Qty, new PXSetPropertyException(Messages.PrepaidQtyCantExceedPOLine)); } if ((poLine.CuryReqPrepaidAmt > poLine.CuryBilledAmt ? poLine.CuryReqPrepaidAmt : poLine.CuryBilledAmt) + tran.CuryTranAmt + tran.CuryRetainageAmt > poLine.CuryExtCost + poLine.CuryRetainageAmt) { sender.RaiseExceptionHandling <APTran.curyTranAmt>(tran, tran.CuryTranAmt, new PXSetPropertyException(Messages.PrepaidAmtCantExceedPOLine)); } else if (poLine.CuryReqPrepaidAmt + poLine.CuryBilledAmt + tran.CuryTranAmt + tran.CuryRetainageAmt > poLine.CuryExtCost + poLine.CuryRetainageAmt) { sender.RaiseExceptionHandling <APTran.curyTranAmt>(tran, tran.CuryTranAmt, new PXSetPropertyException(Messages.PrepaidAmtMayExceedPOLine, PXErrorLevel.Warning, poLine.OrderNbr)); } } }
private bool IsRelatedToCommitment(APTran transaction, int?projectId, string commitmentNumber) { var originalTransaction = TransactionDataProvider.GetOriginalTransaction(graph, transaction); var subcontractNumber = GetSubcontractNumber(originalTransaction); return(originalTransaction.ProjectID == projectId && commitmentNumber.IsIn(originalTransaction.PONbr, subcontractNumber)); }
public static void RecoverInvoiceDetailsBalance(this APTran tran) { tran.CuryRetainageBal = tran.CuryOrigRetainageAmt; tran.RetainageBal = tran.OrigRetainageAmt; tran.CuryTranBal = tran.CuryOrigTranAmt; tran.TranBal = tran.OrigTranAmt; }
private POOrder GetPurchaseOrder(APTran apTran) { var query = new PXSelect <POOrder, Where <POOrder.orderType, Equal <Required <POOrder.orderType> >, And <POOrder.orderNbr, Equal <Required <POOrder.orderNbr> > > > >(Base); return(query.SelectSingle(apTran.POOrderType, apTran.PONbr)); }
private IEnumerable <LienWaiverGenerationKey> CreateLienWaiverGroupingKeys( IReadOnlyCollection <JointPayee> jointPayees, APRegister payment, APTran transaction) { var adjustments = AdjustmentDataProvider.GetInvoiceAdjustments(Graph, transaction.RefNbr); return(adjustments.Any() ? CreateGroupingKeys(jointPayees, payment, transaction) : CreateGroupingKeysForPaymentByLines(jointPayees, payment, transaction)); }
protected virtual APTran GenerateAPTran(SomeDetail detail, GenerateAPTranDel del) { //Get the APTran your base code would have generated APTran tran = del(detail); //Add our custom field data to APTranExtension return(tran); }
public virtual void SetReferenceKeyTo(APTran aTran) { aTran.POAccrualType = this.POAccrualType; aTran.PONbr = this.OrderNbr; aTran.POOrderType = this.OrderType; aTran.POLineNbr = this.LineNbr; aTran.POAccrualRefNoteID = ((IAPTranSource)this).POAccrualRefNoteID; aTran.POAccrualLineNbr = ((IAPTranSource)this).POAccrualLineNbr; }
public virtual APTran GenerateAPTran(USSimpleInvoiceLine detail) { APTran tran = new APTran(); tran.InventoryID = detail.InventoryID; tran.Qty = detail.Qty; tran.ProjectID = NonProject.ID; return(tran); }
public virtual IEnumerable LinkLineOrderTran() { APTran currentAPTran = Base.Transactions.Current; if (currentAPTran == null) { yield break; } PXSelectBase <LinkLineOrder> cmd = new PXSelect <LinkLineOrder, Where2 < Where <Current <LinkLineFilter.pOOrderNbr>, Equal <LinkLineOrder.orderNbr>, Or <Current <LinkLineFilter.pOOrderNbr>, IsNull> >, And2 <Where <Current <LinkLineFilter.siteID>, IsNull, Or <LinkLineOrder.orderSiteID, Equal <Current <LinkLineFilter.siteID> > > >, And <LinkLineOrder.inventoryID, Equal <Current <APTran.inventoryID> >, And <LinkLineOrder.uOM, Equal <Current <APTran.uOM> >, And <LinkLineOrder.orderCuryID, Equal <Current <APInvoice.curyID> > > > > > > >(Base); if (Base.APSetup.Current.RequireSingleProjectPerDocument == true) { cmd.WhereAnd <Where <LinkLineOrder.projectID, Equal <Current <APInvoice.projectID> > > >(); } if (PXAccess.FeatureInstalled <FeaturesSet.vendorRelations>()) { cmd.WhereAnd <Where <LinkLineOrder.vendorID, Equal <Current <APInvoice.suppliedByVendorID> >, And <LinkLineOrder.vendorLocationID, Equal <Current <APInvoice.suppliedByVendorLocationID> >, And <LinkLineOrder.payToVendorID, Equal <Current <APInvoice.vendorID> > > > > >(); } else { cmd.WhereAnd <Where <LinkLineOrder.vendorID, Equal <Current <APInvoice.vendorID> >, And <LinkLineOrder.vendorLocationID, Equal <Current <APInvoice.vendorLocationID> > > > >(); } var usedPOAccrual = new Lazy <POAccrualSet>(() => { var r = Base.GetUsedPOAccrualSet(); r.Remove(currentAPTran); return(r); }); foreach (LinkLineOrder item in cmd.Select().RowCast <LinkLineOrder>().AsEnumerable() .Where(l => !usedPOAccrual.Value.Contains(l))) { var res = (PXResult <POLineS, POOrder>)POLineLink.Select(item.OrderNbr, item.OrderType, item.OrderLineNbr); if (linkLineOrderTran.Cache.GetStatus((POLineS)res) != PXEntryStatus.Updated && ((POLineS)res).CompareReferenceKey(currentAPTran)) { linkLineOrderTran.Cache.SetValue <POLineS.selected>((POLineS)res, true); linkLineOrderTran.Cache.SetStatus((POLineS)res, PXEntryStatus.Updated); } yield return(res); } }
public static APTran GetOriginalTransaction(PXGraph graph, APTran transaction) { if (transaction.OrigLineNbr != null) { var originalInvoice = InvoiceDataProvider.GetOriginalInvoice(graph, transaction.RefNbr, transaction.TranType); return(GetTransaction(graph, originalInvoice.DocType, originalInvoice.RefNbr, transaction.OrigLineNbr)); } return(transaction); }
public static void CreateAPBill(System.Collections.Generic.List <FLXCommissionTran> list, FLXSetup setup) { try { APInvoiceEntry instance1 = PXGraph.CreateInstance <APInvoiceEntry>(); string str = string.Empty; string format = "[{0}] Isn't A Vendor."; for (int index = 0; index < list.Count; ++index) { FLXCommissionTran flxCommissionTran = list[index]; if (FLXGenBillAPInvoice.CheckBAType((PXGraph)instance1, flxCommissionTran.SalesRepID)) { if (instance1.CurrentDocument.Current == null) { APInvoice instance2 = instance1.Document.Cache.CreateInstance() as APInvoice; instance2.DocType = "INV"; instance2.VendorID = flxCommissionTran.SalesRepID; instance2.DocDate = flxCommissionTran.APDate; instance2.InvoiceNbr = string.Format("{0} {1}", (object)flxCommissionTran.CommissionTranID, (object)instance1.vendor.Select((object)instance2.VendorID).TopFirst.AcctCD.Trim()); instance1.Document.Insert(instance2); } APTran instance3 = instance1.Transactions.Cache.CreateInstance() as APTran; instance3.BranchID = flxCommissionTran.BranchID; instance3.InventoryID = setup.CommissionItem; instance3.Qty = new Decimal?((Decimal)1); instance3.CuryUnitCost = flxCommissionTran.CommisionAmt; instance3.TranDesc = string.Format("{0},{1},{2},{3},{4}", (object)flxCommissionTran.CommissionTranID, (object)flxCommissionTran.OrderNbr, (object)flxCommissionTran.ProjectNbr, (object)instance1.nonStockItem.Select((object)flxCommissionTran.InventoryID).TopFirst.InventoryCD.Trim(), (object)instance1.nonStockItem.Select((object)flxCommissionTran.NonStockItem).TopFirst.InventoryCD.Trim()); instance3.SubID = instance1.nonStockItem.Select((object)instance3.InventoryID).TopFirst.COGSSubID; instance1.Transactions.Insert(instance3); str = str + flxCommissionTran.CommissionTranID + "/"; } else { throw new PXException(format, new object[1] { (object)SelectFrom <BAccountR> .Where <BAccountR.bAccountID.IsEqual <P.AsInt> > .View.Select((PXGraph)instance1, (object)flxCommissionTran.SalesRepID).TopFirst.AcctCD.Trim() }); } } instance1.Document.Current.DocDesc = str.Substring(0, (str.Length > PX.Objects.Common.Constants.TranDescLength ? PX.Objects.Common.Constants.TranDescLength : str.Length) - 1); instance1.Document.UpdateCurrent(); instance1.Save.Press(); for (int index = 0; index < list.Count; ++index) { FLXCommissionTran flxCommissionTran = list[index]; PXUpdate <Set <FLXCommissionTran.aPBillCreated, Required <FLXCommissionTran.aPBillCreated>, Set <FLXCommissionTran.aPBillRefNBr, Required <APInvoice.refNbr> > >, FLXCommissionTran, Where <FLXCommissionTran.commissionTranID, Equal <Required <FLXCommissionTran.commissionTranID> > > > .Update((PXGraph)instance1, (object)true, (object)instance1.Document.Current.RefNbr, (object)flxCommissionTran.CommissionTranID); } } catch (PXException ex) { PXProcessing.SetError((Exception)ex); throw ex; } }
/// <summary> /// Checks if deferral code has been changed or removed from the line. /// If so, ensures the removal of any associated deferral schedules. /// </summary> public static void DeleteAssociatedScheduleIfDeferralCodeChanged( PXCache cache, APTran documentLine) { // Obtain the document line last saved into the database // to check if the new line's deferral code differs from it. // - APTran oldLine = GetOriginal <APTran>(cache, documentLine); DeleteAssociatedScheduleIfDeferralCodeChanged(cache.Graph, documentLine, oldLine); }
protected virtual void DRSchedule_RowSelected(PXCache sender, PXRowSelectedEventArgs e) { DRSchedule row = e.Row as DRSchedule; if (row != null) { row.DocumentType = DRScheduleDocumentType.BuildDocumentType(row.Module, row.DocType); if (row.Module == BatchModule.AR) { row.BAccountType = CR.BAccountType.CustomerType; ARTran tran = PXSelect <ARTran, Where <ARTran.tranType, Equal <Current <DRSchedule.docType> >, And <ARTran.refNbr, Equal <Current <DRSchedule.refNbr> >, And <ARTran.lineNbr, Equal <Current <DRSchedule.lineNbr> > > > > > .Select(this); if (tran != null) { row.OrigLineAmt = tran.TranAmt; } } else { row.BAccountType = CR.BAccountType.VendorType; APTran tran = PXSelect <APTran, Where <APTran.tranType, Equal <Current <DRSchedule.docType> >, And <APTran.refNbr, Equal <Current <DRSchedule.refNbr> >, And <APTran.lineNbr, Equal <Current <DRSchedule.lineNbr> > > > > > .Select(this); if (tran != null) { row.OrigLineAmt = tran.TranAmt; } } release.SetVisible(row.IsCustom == true); release.SetEnabled(row.IsCustom == true); PXUIFieldAttribute.SetEnabled <DRSchedule.documentType>(sender, row, row.IsCustom == true); PXUIFieldAttribute.SetEnabled <DRSchedule.finPeriodID>(sender, row, row.IsCustom == true); PXUIFieldAttribute.SetEnabled <DRSchedule.refNbr>(sender, row, row.IsCustom == true); PXUIFieldAttribute.SetEnabled <DRSchedule.lineNbr>(sender, row, row.IsCustom == true); PXUIFieldAttribute.SetEnabled <DRSchedule.docDate>(sender, row, row.IsCustom == true); PXUIFieldAttribute.SetEnabled <DRSchedule.bAccountID>(sender, row, row.IsCustom == true); PXUIFieldAttribute.SetEnabled <DRSchedule.bAccountLocID>(sender, row, row.IsCustom == true); PXUIFieldAttribute.SetEnabled <DRSchedule.projectID>(sender, row, row.IsCustom == true); PXUIFieldAttribute.SetEnabled <DRSchedule.taskID>(sender, row, row.IsCustom == true); PXUIFieldAttribute.SetVisible <DRSchedule.origLineAmt>(sender, row, row.IsCustom != true); Components.Cache.AllowInsert = row.IsDraft == true; Components.Cache.AllowUpdate = row.IsDraft == true; Components.Cache.AllowDelete = row.IsDraft == true; } }
private static APTran GetOriginalTransactionWithRetainageBillReference(APTran originalTransaction, IDocumentTran retainageTransaction) { if (retainageTransaction == null) { return(originalTransaction); } originalTransaction.RefNbr = retainageTransaction.RefNbr; originalTransaction.CuryTranAmt = retainageTransaction.CuryTranAmt; return(originalTransaction); }
protected POOrder GetCommitment(APTran transaction) { var originalTransaction = TransactionDataProvider.GetOriginalTransaction(Graph, transaction); var transactionExtension = PXCache <APTran> .GetExtension <ApTranExt>(originalTransaction); return(transactionExtension.SubcontractNbr != null ? CommitmentDataProvider.GetCommitment(Graph, transactionExtension.SubcontractNbr, POOrderType.RegularSubcontract) : originalTransaction.PONbr != null ? CommitmentDataProvider.GetCommitment(Graph, originalTransaction.PONbr, POOrderType.RegularOrder) : null); }
private LienWaiverGenerationKey GetLienWaiverGroupingKey(APTran transaction, int?jointPayeeVendorId, APRegister payment) { var originalTransaction = TransactionDataProvider.GetOriginalTransaction(Graph, transaction); return(new LienWaiverGenerationKey { ProjectId = originalTransaction.ProjectID, VendorId = payment.VendorID, JointPayeeVendorId = jointPayeeVendorId, OrderNumber = GetCommitment(originalTransaction).OrderNbr }); }
protected virtual void _(Events.FieldUpdating <APTran, APTran.uOM> e) { if (e.Row == null || SharedFunctions.isFSSetupSet(Base) == false) { return; } APTran apTranRow = (APTran)e.Row; if (IsLineCreatedFromAppSO(Base, Base.Document.Current, apTranRow, typeof(APTran.uOM).Name) == true) { throw new PXSetPropertyException(TX.Error.NO_UPDATE_ALLOWED_DOCLINE_LINKED_TO_APP_SO); } }
public virtual void SetReferenceKeyTo(APTran aTran) { bool orderPOAccrual = (this.POAccrualType == Objects.PO.POAccrualType.Order); aTran.POAccrualType = this.POAccrualType; aTran.POAccrualRefNoteID = this.POAccrualRefNoteID; aTran.POAccrualLineNbr = this.POAccrualLineNbr; aTran.ReceiptType = orderPOAccrual ? null : this.ReceiptType; aTran.ReceiptNbr = orderPOAccrual ? null : this.ReceiptNbr; aTran.ReceiptLineNbr = orderPOAccrual ? null : this.LineNbr; aTran.POOrderType = this.POType; aTran.PONbr = this.PONbr; aTran.POLineNbr = this.POLineNbr; }
protected virtual void _(Events.RowPersisted <APTran> e) { if (e.Row == null) { return; } APTran apTranRow = (APTran)e.Row; // We call here cache.GetStateExt for every field when the transaction is aborted // to set the errors in the fields and then the Generate Invoice screen can read them if (e.TranStatus == PXTranStatus.Aborted && IsInvoiceProcessRunning == true) { MessageHelper.GetRowMessage(e.Cache, apTranRow, false, false); } }
protected virtual void LandedCostCode_RowDeleting(PXCache sender, PXRowDeletingEventArgs e) { LandedCostTran costTran = PXSelect <LandedCostTran, Where <LandedCostTran.landedCostCodeID, Equal <Current <LandedCostCode.landedCostCodeID> > > > .SelectWindowed(this, 0, 1); if (costTran != null) { throw new PXException(Messages.ThisEntityNotBeDeletedBecauseItIsUsedIn, Messages.LandedCostCode, Messages.LandedCostTran); } APTran apTran = PXSelect <APTran, Where <APTran.landedCostCodeID, Equal <Current <LandedCostCode.landedCostCodeID> > > > .SelectWindowed(this, 0, 1); if (costTran != null) { throw new PXException(Messages.ThisEntityNotBeDeletedBecauseItIsUsedIn, Messages.LandedCostCode, AP.Messages.APTran); } }
private void ValidateTransaction(APTran transaction) { var projectHasExpiredCompliance = service.ValidateRelatedProjectField <APTran, APTran.projectID>(transaction, transaction.ProjectID); var taskHasExpiredCompliance = service.ValidateRelatedField <APTran, ComplianceDocument.costTaskID, APTran.taskID>(transaction, transaction.TaskID); var purchaseOrderOrSubcontractHasExpiredCompliance = IsSubcontract(transaction) ? service.ValidateRelatedField <APTran, ComplianceDocument.subcontract, ApTranExt.subcontractNbr>(transaction, transaction.PONbr) : service.ValidateRelatedField <APTran, ComplianceDocument.purchaseOrder, APTran.pONbr>( transaction, ComplianceDocumentReferenceRetriever.GetComplianceDocumentReferenceId(Base, transaction)); service.ValidateRelatedRow <APTran, PX.Objects.CN.Compliance.AP.CacheExtensions.ApTranExt.hasExpiredComplianceDocuments>(transaction, projectHasExpiredCompliance || taskHasExpiredCompliance || purchaseOrderOrSubcontractHasExpiredCompliance); }
protected virtual void _(Events.RowDeleted <APTran> e) { if (e.Row == null || SharedFunctions.isFSSetupSet(Base) == false) { return; } APTran apTranRow = (APTran)e.Row; if (e.ExternalCall == true) { if (IsLineCreatedFromAppSO(Base, Base.Document.Current, apTranRow, null) == true) { throw new PXException(TX.Error.NO_DELETION_ALLOWED_DOCLINE_LINKED_TO_APP_SO); } } }
protected virtual void APTran_RowPersisted(PXCache cache, PXRowPersistedEventArgs e) { if (e.Row == null) { return; } APTran apTranRow = (APTran)e.Row; //The CheckCacheState needs to be run when the transaction is aborted to verify the status of the fields //for the current row in order to catch exceptions thrown by other modules to allow them be shown in the //Generate Invoice screen. if (e.TranStatus == PXTranStatus.Aborted && IsInvoiceProcessRunning == true) { SharedFunctions.CheckCacheState(cache, apTranRow); } }
public virtual List <APRegister> ReleaseInvoice(JournalEntry je, ref APRegister doc, PXResult <APInvoice, CurrencyInfo, Terms, Vendor> res, bool isPrebooking, out List <INRegister> inDocs, ReleaseInvoiceDel del) { List <APRegister> results = new List <APRegister>(); using (PXTransactionScope ts = new PXTransactionScope()) { je.RowInserting.AddHandler <GLTran>((sender, e) => { GLTran row = e.Row as GLTran; if (row != null) { if (row.Module == BatchModule.AP) { APTran tranLine = PXSelectReadonly <APTran, Where <APTran.tranType, Equal <Required <APTran.tranType> >, And <APTran.refNbr, Equal <Required <APTran.refNbr> >, And <APTran.lineNbr, Equal <Required <APTran.lineNbr> > > > > > .Select(Base, new object[] { row.TranType, row.RefNbr, row.TranLineNbr }); if (tranLine != null) { InventoryItem item = PXSelectReadonly <InventoryItem, Where <InventoryItem.inventoryID, Equal <Required <InventoryItem.inventoryID> > > > .Select(je, tranLine.InventoryID); if (item != null) { InventoryItemExtension itemExt = item.GetExtension <InventoryItemExtension>(); if (!string.IsNullOrEmpty(itemExt?.UsrTDEndpoint)) { try { } catch { } } } } } } }); results = del(je, ref doc, res, isPrebooking, out inDocs); ts.Complete(Base); } return(results); }