Если вы используете целые числа, вам нужно использовать операцию по модулю (mod
) в AX.Убедитесь, что вы не делите на ноль (мир может закончиться), и вы, вероятно, хотите проверить, что на самом деле было введено ненулевое количество.
if(salesLine.QtyOrdered && inventItemSalesSetup.MultipleQty && (salesLine.QtyOrdered mod inventItemSalesSetup.MultipleQty != 0)
{
return checkFailed("qty ordered not divisible by multiple qty");
}
Если вы используете реалы, тоВы хотите сделать некоторую базовую целочисленную математику.
real qtyOrdered;
real multipleQty;
int result;
qtyOrdered = 321.0; // 321 / 10.7 = 30 exactly
multipleQty = 10.7;
result = qtyOrdered / multipleQty; // This will store the integer and drop any decimals
// If the result multipled by the original multiple is equal to the original value, then you're good
if (result * multipleQty == qtyOrdered)
{
info("All good!");
}
else
{
info("Bad!");
}
Там может быть стандартной функцией AX, которая делает то, что вы хотите, но она настолько проста, что я просто делаю математику сам.