X++
// 梱包明細の転記
public void postPartialPackingSlip(SalesId _salesId)
{
SalesFormLetter_PackingSlip salesFormLetter_PackingSlip;
salesFormLetter salesFormLetter;
salesFormletterParmData salesFormLetterParmData;
SalesParmTable salesParmTable;
SalesParmLine salesParmLine;
salesLine salesLine, salesLineUpd;
salesParmUpdate salesParmUpdate;
SalesTable salestable = SalesTable::find(_salesId, true);
CustPackingSlipJour custPackingSlipJour;
TransDate packingSlipDate = DateTimeUtil::getSystemDate(DateTimeUtil::getUserPreferredTimeZone());
InventDim inventDim;
InventLocation inventLocation;
ttsbegin;
salesFormLetterParmData = salesFormletterParmData::newData(DocumentStatus::PackingSlip, VersioningUpdateType::Initial);
salesFormLetterParmData.parmOnlyCreateParmUpdate(true);
salesFormLetterParmData.createData(false);
salesParmUpdate = salesFormLetterParmData.parmParmUpdate();
salesParmTable.clear();
salesParmTable.TransDate = PackingSlipDate;
salesParmTable.Ordering = DocumentStatus::PackingSlip;
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();
while select salesLine
where salesLine.SalesId == salestable.SalesId
Join inventDim
where inventdim.InventDimId == salesLine.InventDimId
join inventLocation
where inventlocation.InventLocationId == inventdim.InventLocationId
&& inventlocation.TestOwnWareHouse == NoYes::Yes
{
salesParmLine.InitFromsalesLine(salesLine);
salesParmLine.DeliverNow = salesLine.SalesQty;
salesParmLine.ParmId = salesParmTable.ParmId;
salesParmLine.TableRefId = salesParmTable.TableRefId;
salesParmLine.setQty(DocumentStatus::PackingSlip, false, true);
salesParmLine.setLineAmount(salesLine);
salesParmLine.insert();
}
salesFormLetter_PackingSlip = salesFormLetter::construct(DocumentStatus::PackingSlip);
salesFormLetter_PackingSlip.transDate(PackingSlipDate);
salesFormLetter_PackingSlip.proforma(false);
salesFormLetter_PackingSlip.specQty(salesUpdate::All);
salesFormLetter_PackingSlip.salesTable(salesTable);
salesFormLetter_PackingSlip.parmId(salesParmTable.ParmId);
salesFormLetter_PackingSlip.salesParmUpdate(salesFormLetterParmData.parmParmUpdate());
salesFormLetter_PackingSlip.run();
if (salesFormLetter_PackingSlip.parmJournalRecord().TableId == tableNum(custPackingSlipJour))
{
custPackingSlipJour = salesFormLetter_PackingSlip.parmJournalRecord();
info(custPackingSlipJour.packingSlipId)
}
ttscommit;
}