Monthly Archives: February 2015

Reserve and Remove reservation for an Item , X++ , Ax2012

Reserve:

static void A_reserveItem(Args _args)
{
InventTrans             inventTrans;
InventTransOrigin       inventTransOrigin;
InventMovement          inventMovement;
InventUpd_Reservation   inventUpd_Reservation ;

// Reserve an item
select inventTrans
where  inventTrans.ItemId                      == “0900270G31115”
&&  inventTrans.StatusReceipt               == StatusReceipt::None
&&  inventTrans.StatusIssue                 == StatusIssue::OnOrder
exists join inventTransOrigin
where   inventTransOrigin.RecId            == inventTrans.InventTransOrigin;

if(inventTrans.RecId)

{
Inventmovement = inventTrans.inventmovement(true);
inventUpd_Reservation = InventUpd_Reservation::newInventDim(inventmovement,inventTrans.inventDim(),inventTrans.Qty, false);
inventUpd_Reservation.updatenow();
}

info(‘done’);
}

Remove reservation:

static void A_RemoveReserveItem(Args _args)
{
InventTrans             inventTrans;
InventTransOrigin       inventTransOrigin;
InventMovement          inventMovement;
InventUpd_Reservation   inventUpd_Reservation ;

// Remove reservations and markings on a reserved salesorder
while select inventTrans
where  inventTrans.ItemId                      == “0900270G31115”
&&  inventTrans.StatusReceipt               == StatusReceipt::None
&& (inventTrans.StatusIssue                 == StatusIssue::ReservPhysical
||  inventTrans.StatusIssue                 == StatusIssue::ReservOrdered)
exists join inventTransOrigin
where   inventTransOrigin.RecId            == inventTrans.InventTransOrigin
{

if (inventTrans.MarkingRefInventTransOrigin)
{
InventTransOrigin::deleteMarking(inventTrans.MarkingRefInventTransOrigin, inventTrans.InventTransOrigin, -inventTrans.Qty, true);
InventTransOrigin::deleteMarking(inventTrans.InventTransOrigin, inventTrans.MarkingRefInventTransOrigin, inventTrans.Qty, true);
}

if (inventTrans.StatusIssue == StatusIssue::ReservPhysical || inventTrans.StatusIssue == StatusIssue::ReservOrdered)
{
Inventmovement = inventTrans.inventmovement(true);
inventUpd_Reservation = InventUpd_Reservation::newInventDim(inventmovement,inventTrans.inventDim(), -1 * inventTrans.Qty, false);
inventUpd_Reservation.updatenow();
}
}
info(‘Done’);
}

Leave a comment

Filed under Uncategorized

Average Cost Price for an item via x++, Ax2012

private CostPriceAverage runningAvgCostPrice(ItemId _itemId)
{
InventDim dim;
InventSum inventSum;
inventDim  inventDim;
InventTable inventTable;
InventCostPriceCache inventCostPriceCache;
UnitOfMeasureConverter_Product  secondaryToInventUnitConverter;
UnitOfMeasureRecId   fromUnitOfMeasureRecId;
UnitOfMeasureRecId   toUnitOfMeasureRecId;

select firstOnly  inventSum
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(inventTable.salesUnitId()).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::Yes);

return  Currency::amount(inventCostPriceCache.costPricePcs(inventSum, inventDim) *  secondaryToInventUnitConverter.convertValue(1));
}

Leave a comment

Filed under Uncategorized