前言
转载。
一、详细
传递给此方法的两个参数是销售表的记录和具有销售行的 InventTransId 列表的容器。
该方法将返回已注册领料单的领料路线 ID。
代码如下:
public WMSPickingRouteID generatePickingFromSalesLines(
SalesTable _salesTable,
container _salesLineReferences)
{
SalesFormLetter salesFormLetter;
SalesParmLine salesParmLine;
FormletterOutputContract outputContract;
WMSPickingRoute wmsPickingRoute;
salesFormLetter = SalesFormLetter::construct(DocumentStatus::PickingList);
salesFormLetter.salesTable(_salesTable);
salesFormLetter.initParmSalesTable(salesFormLetter.salesTable());
salesFormLetter.transDate(DateTimeUtil::getSystemDate(DateTimeUtil::getUserPreferredTimeZone()));
salesFormLetter.specQty(SalesUpdate::All);
salesFormLetter.proforma(salesFormLetter.salesParmUpdate().Proforma);
salesFormLetter.printFormLetter(salesFormLetter.printFormLetter());
salesFormLetter.printCODLabel(NoYes::No);
salesFormLetter.printShippingLabel(NoYes::No);
salesFormLetter.usePrintManagement(false);
salesFormLetter.creditRemaining(salesFormLetter.creditRemaining());
salesFormLetter.createParmUpdateFromParmUpdateRecord(
SalesFormletterParmData::initSalesParmUpdateFormletter(
salesFormLetter.documentStatus(),
salesFormLetter.pack(),
true,
false,
false));
salesFormLetter.initParameters(
salesFormLetter.salesParmUpdate(),
Printout::Current);
salesFormLetter.initLinesQuery();
// Delete unwanted records in SalesParmLine
while select forupdate salesParmLine
where salesParmLine.ParmId == salesFormLetter.parmId()
{
if (conFind(_salesLineReferences, salesParmLine.InventTransId) == 0)
{
salesParmLine.delete();
}
}
salesFormLetter.run();
outputContract = salesFormLetter.getOutputContract();
wmsPickingRoute = outputContract.parmJournal();
return wmsPickingRoute.pickingRouteID;
}
二、直接
代码如下:
SalesFormLetter salesFormLetter;
salesFormLetter = SalesFormLetter::construct(DocumentStatus::PickingList);
salesFormLetter.update(salesTable);