public virtual ARTran CreateReversalARTran(ARTran srcTran, ReverseInvoiceArgs reverseArgs, Func <ARTran, ReverseInvoiceArgs, ARTran> baseMethod) { if (srcTran.LineType == SOLineType.Freight) { return(null); } var ret = baseMethod(srcTran, reverseArgs); ret.OrigInvoiceType = srcTran.TranType; ret.OrigInvoiceNbr = srcTran.RefNbr; ret.OrigInvoiceLineNbr = srcTran.LineNbr; return(ret); }
public virtual ARInvoice CreateReversalARInvoice(ARInvoice doc, ReverseInvoiceArgs reverseArgs, Func <ARInvoice, ReverseInvoiceArgs, ARInvoice> baseMethod) { var result = baseMethod(doc, reverseArgs); if (reverseArgs.PreserveOriginalDocumentSign) { result.IsCorrection = true; } else { result.IsCancellation = true; } return(result); }
public virtual void ReverseInvoiceProc(ARRegister doc, ReverseInvoiceArgs reverseArgs, ReverseInvoiceProcDelegate baseMethod) { baseMethod(doc, reverseArgs); ARInvoice reverce_invoice = Base.Document.Current; foreach (RUTROTDistribution rutrotDetail in PXSelect <RUTROTDistribution, Where <RUTROTDistribution.docType, Equal <Required <ARRegister.docType> >, And <RUTROTDistribution.refNbr, Equal <Required <ARRegister.refNbr> > > > > .Select(Base, doc.DocType, doc.RefNbr)) { RUTROTDistribution new_detail = (RUTROTDistribution)Base.RRDistribution.Cache.CreateCopy(rutrotDetail); new_detail.RefNbr = reverce_invoice.RefNbr; new_detail.DocType = reverce_invoice.DocType; Base.RRDistribution.Insert(new_detail); } }
public virtual void ReverseInvoiceProc(ARRegister doc, ReverseInvoiceArgs reverseArgs, Action <ARRegister, ReverseInvoiceArgs> baseMethod) { baseMethod(doc, reverseArgs); foreach (SOFreightDetail freight in Base.FreightDetails.View.SelectMultiBound(new[] { (ARInvoice)doc })) { SOFreightDetail newfreight = PXCache <SOFreightDetail> .CreateCopy(freight); newfreight.DocType = null; newfreight.RefNbr = null; newfreight.CuryInfoID = null; newfreight.NoteID = null; Base.FreightDetails.Insert(newfreight); } }
public virtual IEnumerable CancelInvoice(PXAdapter adapter) { if (Base.Document.Current == null) { return(adapter.Get()); } Base.Save.Press(); EnsureCanCancel(Base.Document.Current, false); var reverseArgs = new ReverseInvoiceArgs { ApplyToOriginalDocument = true }; if (this.CancellationInvoiceCreationOnRelease) { var existingCorrectionInvoiceSet = (PXResult <ARInvoice, CurrencyInfo>) PXSelectReadonly2 <ARInvoice, InnerJoin <CurrencyInfo, On <CurrencyInfo.curyInfoID, Equal <ARInvoice.curyInfoID> > >, Where <ARInvoice.origDocType, Equal <Current <ARInvoice.docType> >, And <ARInvoice.origRefNbr, Equal <Current <ARInvoice.refNbr> >, And <ARInvoice.isCorrection, Equal <True> > > > > .Select(Base); ARInvoice existingCorrectionInvoice = existingCorrectionInvoiceSet; CurrencyInfo currencyInfo = existingCorrectionInvoiceSet; if (existingCorrectionInvoice == null) { throw new RowNotFoundException(Base.Document.Cache, Base.Document.Current.DocType, Base.Document.Current.RefNbr); } reverseArgs.DateOption = ReverseInvoiceArgs.CopyOption.Override; reverseArgs.DocumentDate = existingCorrectionInvoice.DocDate; reverseArgs.DocumentFinPeriodID = existingCorrectionInvoice.FinPeriodID; reverseArgs.CurrencyRateOption = ReverseInvoiceArgs.CopyOption.Override; reverseArgs.CurrencyRate = currencyInfo; reverseArgs.OverrideDocumentHold = false; using (new PXLocaleScope(Base.customer.Current.LocaleName)) { reverseArgs.OverrideDocumentDescr = PXMessages.LocalizeFormatNoPrefixNLA(Messages.CorrectionOfInvoice, Base.Document.Current.RefNbr); } } return(Base.ReverseDocumentAndApplyToReversalIfNeeded(adapter, reverseArgs)); }