sales invoice by sales line wise through code in x++
private custInvoiceJour salesOrderInvoiceByLine(SalesLine _salesline)
{
salesFormLetter salesFormLetter;
salesFormletterParmData salesFormLetterParmData;
salesParmUpdate salesParmUpdate;
salesParmTable salesParmTable;
salesParmLine salesParmLine;
salesTable salesTable;
custInvoiceJour custInvoiceJourLocal;
salesTable = salesTable::find(_salesline.SalesId);
ttsbegin;
salesFormLetterParmData = salesFormletterParmData::newData(DocumentStatus::Invoice, VersioningUpdateType::Initial);
salesFormLetterParmData.parmOnlyCreateParmUpdate(true);
salesFormLetterParmData.createData(false);
salesParmUpdate = salesFormLetterParmData.parmParmUpdate();
salesParmTable.clear();
salesParmTable.TransDate = _salesline.ReceiptDateRequested;
salesParmTable.Ordering = DocumentStatus::Invoice;
salesParmTable.ParmJobStatus = ParmJobStatus::Waiting;
salesParmTable.salesId = salesTable.salesId;
salesParmTable.salesName = salesTable.salesName;
salesParmTable.DeliveryName = salesTable.DeliveryName;
salesParmTable.DeliveryPostalAddress = salesTable.DeliveryPostalAddress;
salesParmTable.CustAccount = salesTable.CustAccount;
salesParmTable.CurrencyCode = salesTable.CurrencyCode;
salesParmTable.InvoiceAccount = salesTable.InvoiceAccount;
salesParmTable.ParmId = salesParmUpdate.ParmId;
salesParmTable.insert();
if (_salesline)
{
salesParmLine.InitFromsalesLine(_salesline);
salesParmLine.DeliverNow = _salesline.SalesQty;
salesParmLine.ParmId = salesParmTable.ParmId;
salesParmLine.TableRefId = salesParmTable.TableRefId;
salesParmLine.setQty(DocumentStatus::Invoice, false, true);
salesParmLine.setLineAmount(_salesline);
salesParmLine.insert();
}
ttscommit;
//confirming Sales Order
salesFormLetter = SalesFormLetter::construct(DocumentStatus::Confirmation);
salesFormLetter.update(salesTable, DateTimeUtil::getSystemDate(DateTimeUtil::getUserPreferredTimeZone()), SalesUpdate::All);
//generationg Invoice
salesFormLetter = salesFormLetter::construct(DocumentStatus::Invoice);
salesFormLetter.transDate(_salesline.ReceiptDateRequested);
salesFormLetter.proforma(false);
salesFormLetter.specQty(salesUpdate::All);
salesFormLetter.salesTable(salesTable);
salesFormLetter.parmId(salesParmTable.ParmId);
salesFormLetter.salesParmUpdate(salesFormLetterParmData.parmParmUpdate());
salesFormLetter.run();
custInvoiceJourLocal = salesFormLetter.getOutputContract().parmJournal();
return custInvoiceJourLocal;
}
Comments
Post a Comment