25 lines
889 B
TypeScript
25 lines
889 B
TypeScript
import helper from './lib/helper';
|
||
import type { ReactionsContext } from '@/process/types';
|
||
import { reaction } from 'mobx';
|
||
import { pick } from 'radash';
|
||
import { round } from 'tools';
|
||
|
||
export default function reactions(context: ReactionsContext) {
|
||
const { store } = context;
|
||
const { $calculation } = store;
|
||
const { getCoefficient } = helper(context);
|
||
|
||
reaction(
|
||
() => pick($calculation.$values.values, ['product', 'saleBonus']),
|
||
async ({ product: productId, saleBonus }) => {
|
||
const coefficient = await getCoefficient(productId);
|
||
const maxBonus = (coefficient?.evo_sot_coefficient || 0) * 100;
|
||
|
||
$calculation.element('tbxSaleBonus').validate({
|
||
invalid: round(saleBonus, 2) > round(maxBonus, 2),
|
||
message: 'Размер бонуса МПЛ не может быть выше установленного по СОТ',
|
||
});
|
||
}
|
||
);
|
||
}
|