All projects - Plan - Item Requirements
public class INTC_CreateItemRequirements
{
public void create(RecId _recid)
{
INTC_MaterialTakeOffTable materialTakeOffTable, materialTakeOffTableUpdate;
ProjTable projTable;
SalesLine salesLine;
Str1260 msg;
select materialTakeOffTable where materialTakeOffTable.RecId == _recid;
select projTable where projTable.ProjId == materialTakeOffTable.ProjId;
ttsbegin;
salesLine = this.initializeSalesLine(_recid, projTable);
salesLine.createLine();
select forupdate materialTakeOffTableUpdate where materialTakeOffTableUpdate.RecId == _recid;
materialTakeOffTableUpdate.ItemRequirement = NoYes::Yes;
materialTakeOffTableUpdate.update();
ttscommit;
}
public SalesLine initializeSalesLine(RecId _recid, ProjTable _projTable)
{
SalesLine salesline;
INTC_MaterialTakeOffTable materialTakeOffTable;
ProjTable projTable;
InventDim inventDim, inventDimLocal;
LegalEntity legalEntity;
select materialTakeOffTable where materialTakeOffTable.RecId == _recid;
select projTable where projTable.ProjId == materialTakeOffTable.ProjId;
inventDim = this.getInventDimension(materialTakeOffTable.ItemId);
if(materialTakeOffTable)
{
salesLine.initValue();
salesLine.setInventDimId("");
salesLine.ItemId = materialTakeOffTable.ItemId;
salesLine.itemIdChanged();
if(materialTakeOffTable.AvailableQty > materialTakeOffTable.QtyRequired)
{
salesLine.SalesQty = materialTakeOffTable.QtyRequired;
salesLine.QtyOrdered = materialTakeOffTable.QtyRequired;
}
else if(materialTakeOffTable.QtyRequired > materialTakeOffTable.AvailableQty)
{
salesLine.SalesQty = materialTakeOffTable.AvailableQty;
salesLine.QtyOrdered = materialTakeOffTable.AvailableQty;
}
salesLine.ProjId = materialTakeOffTable.ProjId;
salesLine.CurrencyCode = ledger::accountingCurrency(CompanyInfo::Find().RecId);
salesLine.SalesUnit = materialTakeOffTable.Uom;
salesLine.ProjCategoryId = materialTakeOffTable.projCategoryId;
inventdim.InventSiteId = materialTakeOffTable.InventSiteId;
inventdim.InventLocationId = materialTakeOffTable.InventLocationId;
salesLine.InventDimId = InventdIm::findOrCreate(inventDim).inventDimId;
inventDim.initFromInventTable(InventTable::find(salesLine.ItemId));
salesLine.initFromProjTable(projTable, false);
salesLine.TaxGroup = projTable.TaxGroupId;
salesLine.CostPrice = materialTakeOffTable.UnitCost;
salesLine.SalesPrice = materialTakeOffTable.UnitCost;
SalesLineType_ItemReq::setSalesLineReceiptDate(salesLine);
}
return salesLine;
}
public InventDim getInventDimension(ItemId _itemId)
{
InventTable inventTable = inventTable::find(_itemId);
InventItemOrderSetupType setupType = InventItemOrderSetupType::Invent;
InventDim inventDim;
inventDim.InventSiteId = inventTable.inventItemOrderSetupMap(setupType).inventSiteId(inventDim.InventSiteId, inventTable);
inventDim.InventLocationId = inventTable.inventItemOrderSetupMap( setupType,
InventDim::findOrCreate(inventDim).InventDimId).inventLocationId(inventDim.InventLocationId,
inventTable,
inventDim.InventSiteId);
inventDim.ConfigId = inventTable.StandardConfigId;
inventDim = InventDim::findOrCreate(inventDim);
return inventDim;
}
}
public class INTC_CreateItemRequirements
{
public void create(RecId _recid)
{
INTC_MaterialTakeOffTable materialTakeOffTable, materialTakeOffTableUpdate;
ProjTable projTable;
SalesLine salesLine;
Str1260 msg;
select materialTakeOffTable where materialTakeOffTable.RecId == _recid;
select projTable where projTable.ProjId == materialTakeOffTable.ProjId;
ttsbegin;
salesLine = this.initializeSalesLine(_recid, projTable);
salesLine.createLine();
select forupdate materialTakeOffTableUpdate where materialTakeOffTableUpdate.RecId == _recid;
materialTakeOffTableUpdate.ItemRequirement = NoYes::Yes;
materialTakeOffTableUpdate.update();
ttscommit;
}
public SalesLine initializeSalesLine(RecId _recid, ProjTable _projTable)
{
SalesLine salesline;
INTC_MaterialTakeOffTable materialTakeOffTable;
ProjTable projTable;
InventDim inventDim, inventDimLocal;
LegalEntity legalEntity;
select materialTakeOffTable where materialTakeOffTable.RecId == _recid;
select projTable where projTable.ProjId == materialTakeOffTable.ProjId;
inventDim = this.getInventDimension(materialTakeOffTable.ItemId);
if(materialTakeOffTable)
{
salesLine.initValue();
salesLine.setInventDimId("");
salesLine.ItemId = materialTakeOffTable.ItemId;
salesLine.itemIdChanged();
if(materialTakeOffTable.AvailableQty > materialTakeOffTable.QtyRequired)
{
salesLine.SalesQty = materialTakeOffTable.QtyRequired;
salesLine.QtyOrdered = materialTakeOffTable.QtyRequired;
}
else if(materialTakeOffTable.QtyRequired > materialTakeOffTable.AvailableQty)
{
salesLine.SalesQty = materialTakeOffTable.AvailableQty;
salesLine.QtyOrdered = materialTakeOffTable.AvailableQty;
}
salesLine.ProjId = materialTakeOffTable.ProjId;
salesLine.CurrencyCode = ledger::accountingCurrency(CompanyInfo::Find().RecId);
salesLine.SalesUnit = materialTakeOffTable.Uom;
salesLine.ProjCategoryId = materialTakeOffTable.projCategoryId;
inventdim.InventSiteId = materialTakeOffTable.InventSiteId;
inventdim.InventLocationId = materialTakeOffTable.InventLocationId;
salesLine.InventDimId = InventdIm::findOrCreate(inventDim).inventDimId;
inventDim.initFromInventTable(InventTable::find(salesLine.ItemId));
salesLine.initFromProjTable(projTable, false);
salesLine.TaxGroup = projTable.TaxGroupId;
salesLine.CostPrice = materialTakeOffTable.UnitCost;
salesLine.SalesPrice = materialTakeOffTable.UnitCost;
SalesLineType_ItemReq::setSalesLineReceiptDate(salesLine);
}
return salesLine;
}
public InventDim getInventDimension(ItemId _itemId)
{
InventTable inventTable = inventTable::find(_itemId);
InventItemOrderSetupType setupType = InventItemOrderSetupType::Invent;
InventDim inventDim;
inventDim.InventSiteId = inventTable.inventItemOrderSetupMap(setupType).inventSiteId(inventDim.InventSiteId, inventTable);
inventDim.InventLocationId = inventTable.inventItemOrderSetupMap( setupType,
InventDim::findOrCreate(inventDim).InventDimId).inventLocationId(inventDim.InventLocationId,
inventTable,
inventDim.InventSiteId);
inventDim.ConfigId = inventTable.StandardConfigId;
inventDim = InventDim::findOrCreate(inventDim);
return inventDim;
}
}
No comments:
Post a Comment