public real GOD_averageCostPriceUnitWMSChangeQty(ItemId _ItemID)
{
InventDim dim;
InventSum _inventSum;
inventDim _inventDim;
InventTable inventTable;
InventCostPriceCache inventCostPriceCache;
UnitOfMeasureConverter_Product secondaryToInventUnitConverter;
UnitOfMeasureRecId fromUnitOfMeasureRecId;
UnitOfMeasureRecId toUnitOfMeasureRecId;
select ItemId,sum(PostedValue),sum(PostedQty),sum(Received),sum(Deducted),sum(PhysicalValue) from _inventSum
group by ItemId
where _inventSum.ItemId == _ItemID;
//join inventDim;
///if (!inventSum.InventDimId)
{
dim = InventDim::findDim(_inventDim);
if (dim.InventDimId)
{
_inventSum.InventDimId = dim.InventDimId;
}
}
inventCostPriceCache = InventCostPriceCache::construct();
inventTable = _inventSum.inventTable();
fromUnitOfMeasureRecId = UnitOfMeasure::findBySymbol(this.SalesUnit).RecId;
toUnitOfMeasureRecId = UnitOfMeasure::findBySymbol(inventTable.inventUnitId()).RecId;
secondaryToInventUnitConverter = UnitOfMeasureConverter_Product::construct();
secondaryToInventUnitConverter.parmProduct(inventTable.Product);
secondaryToInventUnitConverter.parmFromUnitOfMeasure(fromUnitOfMeasureRecId);
secondaryToInventUnitConverter.parmToUnitOfMeasure(toUnitOfMeasureRecId);
secondaryToInventUnitConverter.parmRoundAbsoluteValue(NoYes::Yes);
secondaryToInventUnitConverter.parmApplyRounding(NoYes::No);
//if( _INventSum.PostedValue <=0 && _InventSum.PostedQty <=0)
//return 0;
// else
return Currency::amount(inventCostPriceCache.costPricePcs(_inventSum, _inventDim) * secondaryToInventUnitConverter.convertValue(1));
}
No comments:
Post a Comment