static void
OGSReleaseItemVariants(Args _args)
{
InventTable inventTable;
EcoResDistinctProductVariant ecoResDistinctProductVariant;
EcoResProductVariantDimensionValue ecoResProductVariantDimensionValue;
RefRecId
ecoResDistinctProductVariantRecId;
EcoResProductReleaseManagerBase releaseManager;
InventDimCombination inventDimCombination;
container
productDimensions;
int
success, errors;
//Create a
container to hold dimension values
productDimensions =
EcoResProductVariantDimValue::getDimensionValuesContainer("Default","default","default","default");
while
select inventTable
notExists
join inventDimCombination
where
inventTable.ItemId == inventDimCombination.ItemId
{
//Check if
variant exist
ecoResDistinctProductVariant =
EcoResProductVariantManager::findDistinctProductVariant(inventTable.Product,productDimensions);
if(ecoResDistinctProductVariant.RecId
== 0)
{
//Create
Product search name
ecoResDistinctProductVariant.DisplayProductNumber
= EcoResProductNumberBuilderVariant::buildFromProductNumberAndDimensions(
EcoResProduct::find(inventTable.Product).productNumber(),
productDimensions);
//Create
Product variant with Product and dimensions provided
ecoResDistinctProductVariantRecId =
EcoResProductVariantManager::createProductVariant(InventTable.Product,ecoResDistinctProductVariant.DisplayProductNumber,productDimensions);
//Find
newly created Product Variant
ecoResDistinctProductVariant =
ecoResDistinctProductVariant::find(ecoResDistinctProductVariantRecId);
}
//Now
release the Product variant
try
{
releaseManager =
EcoResProductReleaseManagerBase::newFromProduct(ecoResDistinctProductVariant);
releaseManager.release();
success++;
}
catch
{
errors++;
continue;
}
}
info(strFmt("Complete: %1 records success, %2
errors/skipped",success,errors));
}
No comments:
Post a Comment