public void createRAF()
{
InventTable inventTable;
BOSPlanningSlitterCombinationItem combinationItem;
ProdJournalCheckPostProd journalCheckPost;
ProdJournalTable prodJournalTable;
LineNum lineNumCount = 1;
int batchCount = 1;
InventDim inventDimRM = InventDim::find(slitterReportLine.InventDimIdRM);
PmfProdCoBy coByLoc;
prodJournalTable.clear();
prodJournalTable.initValue();
prodJournalTable.JournalType = ProdJournalType::ReportFinished;
prodJournalTable.NumOfLines = 1;
prodJournalTable.JournalNameId = ProdParametersDim::findDefault().ProdJournalNameId;
prodJournalTable.Description = "Auto create RAF from Slitter report " + slitterReportLine.SlitterReportId;
prodJournalTable.ProdId = prodTableCreated.ProdId;
prodJournalTable.VoucherDraw = JournalVoucherDraw::Post;
prodJournalTable.VoucherSeqRecId = NumberSequenceTable::find(ProdParameters::numRefProdJournalVoucherId().NumberSequenceId).RecId;
prodJournalTable.insert();
while select combinationItem
where combinationItem.PlanningSlitterOrderId == slitterPlanningTable.PlanningSlitterOrderId
join inventTable
where inventTable.ItemId == combinationItem.ItemId
join coByLoc
where coByLoc.ItemId == inventTable.ItemId
&& coByLoc.ProdId == prodTableCreated.ProdId
{
ProdJournalProd prodJournalProd;
prodJournalProd.clear();
prodJournalProd.initValue();
prodJournalProd.initFromProdTable(prodTableCreated);
prodJournalProd.initFromProdJournalTable(prodJournalTable);
prodJournalProd.pmfInitFromInventTable(inventTable);
prodJournalProd.InventTransId = coByLoc.InventTransId;
prodJournalProd.LineNum = lineNumCount;
prodJournalProd.InventDimId = prodTableCreated.InventDimId;
prodJournalProd.TransDate = slitterReportTable.EntryDate;
prodJournalProd.QtyGood = combinationItem.Qty * (inventTable.BOSWidthStrip / slitterPlanningTable.SlitterWidth);
prodJournalProd.ProdFinished = true;
prodJournalProd.insert();
for (int i = 1; i <= combinationItem.Qty; i++)
{
InventBatchId inventBatchIdCreate = strFmt("%1P%2", inventDimRM.inventBatchId, batchCount);
InventBatch inventBatchFG = InventBatch::findOrCreate(inventBatchIdCreate, inventTable.ItemId);
TmpInventTransWMS tmpInventTransWMS;
InventTransWMS_Register inventTransWMS_Register = InventTransWMS_Register::newStandard(tmpInventTransWMS);
InventTrans inventTrans = InventTrans::findTransId(prodJournalProd.InventTransId);
InventDim inventDimFGBatch;
inventDimFGBatch.clear();
inventDimFGBatch.InventSiteId = inventDimFG.InventSiteId;
inventDimFGBatch.InventLocationId = inventDimFG.InventLocationId;
inventDimFGBatch.wMSLocationId = inventDimFG.wMSLocationId;
inventDimFGBatch.inventBatchId = inventBatchFG.inventBatchId;
inventDimFGBatch = InventDim::findOrCreate(inventDimFGBatch);
tmpInventTransWMS.clear();
tmpInventTransWMS.initFromInventTrans(inventTrans);
tmpInventTransWMS.InventQty = inventTable.BOSWidthStrip / slitterPlanningTable.SlitterWidth;
tmpInventTransWMS.InventDimId = inventDimFGBatch.inventDimId;
inventTransWMS_Register.writeTmpInventTransWMS(
tmpInventTransWMS, inventTrans, inventDimFGBatch
);
inventTransWMS_Register.updateInvent(prodJournalProd);
batchCount++;
}
lineNumCount++;
}
journalCheckPost = ProdJournalCheckPostProd::newPostJournal(prodJournalTable.JournalId, false);
journalCheckPost.run();
}


Report
All responses (
Answers (