FTI Posting with manual number in D365fo x++

FTI Posting with manual number in D365fo x++

[ExtensionOf(classStr(CustPostInvoice))] final class CustPostInvoice_AdremGH_Extension { protected container getInvoiceIdAndVoucher(CustInvoiceTable _custInvoiceTable, NumberSeq _numberSeq) { InvoiceId _invoiceId; Voucher _voucher; next getInvoiceIdAndVoucher(_custInvoiceTable, _numberSeq); CustFreeInvoiceCalcTotals custFreeInvoiceCalcTotals = this.custFreeInvoiceCalcTotals; boolean creditNote = this.isCreditNote(custFreeInvoiceCalcTotals.custFreeInvoiceInvoiceAmount()); if (!this.validate(custFreeInvoiceCalcTotals.custFreeInvoiceInvoiceAmount(), creditNote)) { Message::Add(MessageSeverity::Error, "@SYS25904"); throw Exception::Error; } NumberSeq newNumSeq = this.allocateNumAndVoucher(creditNote); if (CustParameters::find().ADMFTIManualNum) { [_invoiceId, _voucher] = this.getNumAndVoucher(_custInvoiceTable, newNumSeq); if (!CustInvoiceJour::checkDuplicateNum_W(_invoiceId, '', custInvoiceTable.InvoiceDate)) { throw error("@SYS25904"); } } else { [_invoiceId, _voucher] = newNumSeq.numAndVoucher(); } if (custInvoiceTable.CustomerRef && RetailMCRChannelTable::findForCurrentUser().mcrEnableOrderCompletion) { _invoiceId = custInvoiceTable.CustomerRef; _voucher = custInvoiceTable.mcrLedgerVoucher; } if (!_voucher) { throw error("@SYS71652"); } return [_invoiceId, _voucher]; } private container getNumAndVoucher(CustInvoiceTable _custInvoiceTable, NumberSeq _numberSeq) { container ret; if (_custInvoiceTable.CustomerRef && CustParameters::find().ADMFTIManualNum) { _numberSeq.parmNumberSequenceCode(''); _numberSeq.parmNumberSequenceId(0); ret = [_custInvoiceTable.CustomerRef, _numberSeq.voucher()]; } else { ret = _numberSeq.numAndVoucher(); } return ret; } }

Comments