56 lines
1.4 KiB
TypeScript
56 lines
1.4 KiB
TypeScript
import type { ProcessContext } from '@/process/types';
|
|
import { createCurrencyUtility } from '@/utils/currency';
|
|
import { reaction } from 'mobx';
|
|
|
|
export default function reactions({ store, apolloClient }: ProcessContext) {
|
|
const { $calculation } = store;
|
|
|
|
const { RUB } = createCurrencyUtility({ apolloClient });
|
|
|
|
reaction(
|
|
() => $calculation.$values.getValues(['supplierCurrency', 'leaseObjectPrice']),
|
|
async ({ supplierCurrency: supplierCurrencyId, leaseObjectPrice }) => {
|
|
if (!supplierCurrencyId) {
|
|
$calculation.$values.resetValue('plPriceRub');
|
|
|
|
return;
|
|
}
|
|
|
|
$calculation.$values.setValue(
|
|
'plPriceRub',
|
|
await RUB({
|
|
currencyid: supplierCurrencyId,
|
|
value: leaseObjectPrice,
|
|
})
|
|
);
|
|
},
|
|
{
|
|
delay: 100,
|
|
fireImmediately: true,
|
|
}
|
|
);
|
|
|
|
reaction(
|
|
() => $calculation.$values.getValues(['supplierCurrency', 'supplierDiscountRub']),
|
|
async ({ supplierCurrency: supplierCurrencyId, supplierDiscountRub }) => {
|
|
if (!supplierCurrencyId) {
|
|
$calculation.$values.resetValue('discountRub');
|
|
|
|
return;
|
|
}
|
|
|
|
$calculation.$values.setValue(
|
|
'discountRub',
|
|
await RUB({
|
|
currencyid: supplierCurrencyId,
|
|
value: supplierDiscountRub,
|
|
})
|
|
);
|
|
},
|
|
{
|
|
delay: 100,
|
|
fireImmediately: true,
|
|
}
|
|
);
|
|
}
|