AX 4
X++:
void checkFixSettlement(InventConsistencyCheck_Trans inventConsistencyCheck_Trans)
{
InventSettlement inventSettlement;
setprefix("@SYS55578");
while select forupdate inventSettlement
where inventSettlement.TransRecId == this.RecId &&
inventSettlement.InventTransCurrency_RU == InventTransCurrency_RU::PrimaryCur
{
setprefix(#prefixField(inventSettlement,RecId));
if (inventSettlement.ItemId != this.ItemId ||
inventSettlement.InventTransId != this.InventTransId)
{
checkFailed("@SYS67934",'', SysInfoAction_TableField::newBufferField(inventSettlement, fieldnum(InventSettlement, RecId)));
if (inventConsistencyCheck_Trans.checkFix() == CheckFix::Fix)
{
inventSettlement.doDelete();
inventConsistencyCheck_Trans.updateCorrected();
}
else
inventConsistencyCheck_Trans.updateNotCorrected();
}
}
select sum(QtySettled),sum(CostAmountSettled),sum(CostAmountAdjustment) from inventSettlement
where inventSettlement.TransRecId == this.RecId &&
inventSettlement.Cancelled == NoYes::No &&
inventSettlement.SettleModel != InventSettleModel::PhysicalValue &&
inventSettlement.InventTransCurrency_RU == InventTransCurrency_RU::PrimaryCur;
if (inventSettlement.QtySettled != this.QtySettled)
{
checkFailed("@SYS67938",'', SysInfoAction_TableField::newBufferField(this, fieldnum(InventTrans, QtySettled)));
if(inventConsistencyCheck_Trans.checkFix() == CheckFix::Fix)
{
this.QtySettled = inventSettlement.QtySettled;
this.doUpdate();
inventConsistencyCheck_Trans.updateCorrected();
}
else
inventConsistencyCheck_Trans.updateNotCorrected();
}
if (inventSettlement.CostAmountSettled != this.CostAmountSettled)
{
checkFailed("@SYS67939",'', SysInfoAction_TableField::newBufferField(this, fieldnum(InventTrans, CostAmountSettled)));
if (inventConsistencyCheck_Trans.checkFix() == CheckFix::Fix)
{
this.CostAmountSettled = inventSettlement.CostAmountSettled;
this.doUpdate();
inventConsistencyCheck_Trans.updateCorrected();
}
else
inventConsistencyCheck_Trans.updateNotCorrected();
}
if (inventSettlement.CostAmountAdjustment != this.CostAmountAdjustment)
{
checkFailed("@SYS67940",'', SysInfoAction_TableField::newBufferField(this, fieldnum(InventTrans, CostAmountAdjustment)));
if (inventConsistencyCheck_Trans.checkFix() == CheckFix::Fix)
{
this.CostAmountAdjustment = inventSettlement.CostAmountAdjustment;
this.doUpdate();
inventConsistencyCheck_Trans.updateCorrected();
}
else
inventConsistencyCheck_Trans.updateNotCorrected();
}
}