如何通过X ++代码确认,选择销售订单,更新,打包并生成Dynamics AX 2012 R2中的销售订单的发票?
问题描述:
我使用下面的代码来确认销售订单,然后选择它。 为了确认如何通过X ++代码确认,选择销售订单,更新,打包并生成Dynamics AX 2012 R2中的销售订单的发票?
public void confirmSO()
{
salesTable = SalesTable::find(salesTable.SalesId);
salesFormletter = SalesFormletter::construct(DocumentStatus::PickingSlip);
salesFormletter.update(salesTable, systemDateGet(), SalesUpdate::All, AccountOrder::None,
false, false);
}
和采摘
公共无效pickSlip()
{
salesTable = salesTable::find(salesTable.SalesId);
salesFormLetter = SalesFormLetter_PickingList::newPickingList();
salesFormLetter.transDate(systemDateGet());
salesFormLetter.update(salesTable,
systemdateget(),
SalesUpdate::All,
AccountOrder::None,
NoYes::No,
NoYes::No);
}
现在怎么收拾呢?并将其状态转换为“已交付”以及如何为其生成发票并将其状态更改为“已开票”?
答
检查这个代码,并提供发票后:
//Delivered Sales Order
ttsbegin;
//update Sales Line
salesLine = SalesLine::find(_salesId, _lineNum, true);
salesLine.SalesDeliverNow = -1;
salesLine.setInventDeliverNow();
salesLine.doUpdate();
//Post the delivery
salesFormLetter = SalesFormLetter::construct(DocumentStatus::PackingSlip);
salesFormLetter.progressHide(); // Hide the progress bar.
salesFormLetter.update(salesTable, // SalesTable
SystemDateGet(), // Delivery date
SalesUpdate::DeliverNow, // Quantity to update (SpecQty)
AccountOrder::None, // AccountOrder
false, // Proforma only?
false); // Printout?
ttscommit;
//Post the Sales Order Invoice
SalesFormLetter::construct(DocumentStatus::Invoice).update(SalesTable::find(_salesId));
info("Sales order posted");
您的确认不发表确认码,但采摘列表('DocumentStatus :: PickingSlip'应该是'DocumentStatus :: Confirmation')。 –
谢谢@ FH-Inway –