Saturday, September 28, 2019

Average Cost Price Unit

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