In One of my implementation I was having a requirement in this I had to convert product master to product across the companies. You can find in below code how we can do this.
public void convertProductMasterToProduct(ItemId _itemId,
str _supplyCompany = "",
str _demandCompany = "")
{
EcoResProductMaster master;
EcoResDistinctProduct distinctProduct;
EcoResProductTranslation productTranslation;
InventTable inventtable;
EcoResProductIdentifier productIdentifier;
str text;
str shortText;
;
ttsBegin;
master = EcoResProductMaster::find(inventtable::find(_itemId).Product, true);
if (master)
{
distinctProduct.clear();
distinctProduct.initValue();
distinctProduct.DisplayProductNumber = master.DisplayProductNumber;
distinctProduct.SearchName = master.SearchName;
distinctProduct.ProductType = EcoResProductType::Item;
text = EcoResProductTranslation::findByProductLanguage(master.RecId, CompanyInfo::languageId()).Description;
shortText = EcoResProductTranslation::findByProductLanguage(master.RecId, CompanyInfo::languageId()).Name;
master.delete();
distinctProduct.insert();
productTranslation.clear();
productTranslation.initValue();
productTranslation.LanguageId = CompanyInfo::find().LanguageId;
productTranslation.Name = shortText;
productTranslation.Product = distinctProduct.RecId;
productTranslation.Description = text;
productTranslation.insert();
productIdentifier.clear();
productIdentifier.initValue();
productIdentifier.ProductNumber = _itemId;
productIdentifier.Product = distinctProduct.RecId;
productIdentifier.insert();
if (_supplyCompany)
{
changeCompany(_supplyCompany)
{
inventTable = InventTable::find(_itemId, true);
if (inventtable)
{
InventTable.Product = distinctProduct.RecId;
inventtable.StandardConfigId = "";
InventTable.update();
}
}
}
if (_demandCompany)
{
changeCompany(_demandCompany)
{
inventTable = InventTable::find(_itemId, true);
if (inventtable)
{
InventTable.Product = distinctProduct.RecId;
inventtable.StandardConfigId = "";
InventTable.update();
}
}
}
}
ttsCommit;
}
No comments:
Post a Comment