InventNonConformanceTable inventNonConformanceTable;
public void createInventJournalTable()
{
InventJournalNameId inventJournalNameId;
if (!inventJournalTable)
{
inventJournalTable.clear();
inventJournalTable.initValue();
inventJournalNameId = InventJournalName::standardJournalName(InventJournalType::Movement);
inventJournalTable.initFromInventJournalName(InventJournalName::find(inventJournalNameId));
if (inventJournalTable.validateField(fieldNum(InventJournalTable, JournalNameId)))
{
inventJournalTable.modifiedField(fieldNum(InventJournalTable, JournalNameId));
inventJournalTable.JournalType = InventJournalType::Movement;
inventJournalTable.insert();
}
}
}
public void createInventJournalTrans(ItemId _itemId, InventDimId _inventDimId, Qty _avaWeight, boolean isNonconformance = false)
{
InventJournalTrans inventJournalTrans;
ProdParameters prodParamters = ProdParameters::find();
ProdParametersDim prodParametersDim;
LedgerDimensionDefaultAccount scrapAccount;
InventDim inventDim;
InventDim inventDimLoc = InventDim::find(_inventDimId);
// ProdJournalTable prodJournalTable = ProdJournalTable::(_prodJournalProd.JournalId);
select firstonly prodParametersDim
// where prodParametersDim.ProdJournalNameId == journalId
exists join inventDim
where inventDim.inventDimId == prodParametersDim.InventDimId
&& inventDim.inventDimId != InventDim::inventDimIdBlank();
if (prodParamters.ProdParamInventDimLookup == ProdParamInventDimLookup::Site &&
inventDimLoc.InventSiteId == prodParametersDim.inventSite().SiteId &&
prodParametersDim.CostingScrapMethod == ProdScrapMethod::ScrapAccount &&
prodParametersDim.LedgerDimension)
{
scrapAccount = prodParametersDim.LedgerDimension;
}
else
{
prodParametersDim = ProdParametersDim::findDefault();
if (prodParametersDim.CostingScrapMethod == ProdScrapMethod::ScrapAccount &&
prodParametersDim.LedgerDimension)
{
scrapAccount = prodParametersDim.LedgerDimension;
}
}
lineNum++;
inventJournalTrans.clear();
inventJournalTrans.initValue();
inventJournalTrans.initFromInventJournalTable(inventJournalTable);
inventJournalTrans.TransDate = today();
if (isNonconformance)
{
inventJournalTrans.Qty = -inventNonConformanceTable.AVAScrapQty;
}
else
{
inventJournalTrans.Qty = _avaWeight * inventNonConformanceTable.AVAScrapQty;
}
inventJournalTrans.ItemId = _itemId;
inventJournalTrans.LineNum = lineNum;
inventJournalTrans.modifiedField(fieldNum(InventJournalTrans, ItemId));
inventJournalTrans.InventDimId = inventDimLoc.InventDimId;
inventJournalTrans.modifiedField(fieldNum(InventJournalTrans, inventDimId));
inventJournalTrans.modifiedField(fieldNum(inventJournalTrans, Qty));
inventJournalTrans.LedgerDimension = (scrapAccount != 0) ? scrapAccount:0;
inventJournalTrans.JournalType = InventJournalType::Movement;
inventJournalTrans.AVAOrderId = inventNonConformanceTable.InventRefId;
inventJournalTrans.AVAInventNonConformanceID = inventNonConformanceTable.InventNonConformanceID;
inventJournalTrans.insert();
}
public void postInventJournal()
{
JournalCheckPost journalCheckPost;
if (inventJournalTable)
{
journalCheckPost = InventJournalCheckPost::newPostJournal(inventJournalTable);
journalCheckPost.run();
}
}
Comments
Post a Comment