如何通过X++代码在Dynamics AX 2012 R2中确认、挑选销售订单、更新、打包和生成销售订单发票?
How to confirm, pick sales order, update, pack and generate invoice of a sales order in Dynamics AX 2012 R2 through X++ code?
我正在使用以下代码确认销售订单,然后进行取货。
用于确认
public void confirmSO()
{
salesTable = SalesTable::find(salesTable.SalesId);
salesFormletter = SalesFormletter::construct(DocumentStatus::PickingSlip);
salesFormletter.update(salesTable, systemDateGet(), SalesUpdate::All, AccountOrder::None,
false, false);
}
和采摘
public void 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" 以及如何为其生成发票并将其状态更改为 "Invoiced"?
检查此代码以交付 post 发票:
//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");
我正在使用以下代码确认销售订单,然后进行取货。 用于确认
public void confirmSO()
{
salesTable = SalesTable::find(salesTable.SalesId);
salesFormletter = SalesFormletter::construct(DocumentStatus::PickingSlip);
salesFormletter.update(salesTable, systemDateGet(), SalesUpdate::All, AccountOrder::None,
false, false);
}
和采摘
public void 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" 以及如何为其生成发票并将其状态更改为 "Invoiced"?
检查此代码以交付 post 发票:
//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");