64 lines
2.8 KiB
TypeScript
64 lines
2.8 KiB
TypeScript
import helper from './lib/helper';
|
||
import type { ProcessContext } from '@/process/types';
|
||
import { disposableReaction } from '@/utils/mobx';
|
||
import { comparer } from 'mobx';
|
||
|
||
/**
|
||
* При изменении "Программа от производителя" selectImportProgram , Стоимости ПЛ tbxLeaseObjectPrice, Валюты selectSupplierCurrency, Скидка от поставщика, в валюте поставщика (tbxSupplierDiscountRub)
|
||
* необходимо заполнять поле "Скидка от производителя, руб., с НДС" labelImportProgramSum:
|
||
* если поле selectImportProgram содержит данные,
|
||
* то
|
||
* если
|
||
* поле "Сумма субсидии с НДС" evo_subsidy.evo_subsidy_summ из selectImportProgram > 0,
|
||
* то указывает данное значение в поле labelImportProgramSum,
|
||
* иначе:
|
||
* 1)labelImportProgramSum = ( (Стоимость ПЛ tbxLeaseObjectPrice ), переведенные в рубли - Скидка от поставщика, в валюте поставщика (tbxSupplierDiscountRub))* "% субсидии от стоимости ПЛ" evo_subsidy.evo_percent_subsidy из selectImportProgram / 100.
|
||
* 2) Если полученное значение больше значения в поле "Максимальная сумма субсидии с НДС, руб." evo_subsidy.evo_max_subsidy_summ из записи Субсидия в поле selectImportProgram ,
|
||
* то в labelImportProgramSum указываем значение из поля "Максимальная сумма субсидии с НДС, руб." evo_subsidy.evo_max_subsidy_summ ,
|
||
* иначе результат расчета п.1
|
||
* иначе 0
|
||
*/
|
||
/* eslint-enable */
|
||
|
||
export function common(context: ProcessContext) {
|
||
const { store } = context;
|
||
const { $calculation, $process } = store;
|
||
|
||
const { getSubsidySum, getImportProgramSum } = helper(context);
|
||
|
||
disposableReaction(
|
||
() => $process.has('LoadKP'),
|
||
() => $calculation.$values.getValues(['importProgram', 'plPriceRub', 'discountRub']),
|
||
async (values) => {
|
||
const importProgramSum = await getImportProgramSum(values);
|
||
|
||
$calculation.element('tbxImportProgramSum').setValue(importProgramSum);
|
||
},
|
||
{
|
||
delay: 5,
|
||
equals: comparer.shallow,
|
||
}
|
||
);
|
||
|
||
disposableReaction(
|
||
() => $process.has('LoadKP'),
|
||
() =>
|
||
$calculation.$values.getValues([
|
||
'subsidy',
|
||
'plPriceRub',
|
||
'discountRub',
|
||
'addEquipmentPrice',
|
||
'importProgramSum',
|
||
'quote',
|
||
]),
|
||
async (values) => {
|
||
const subsidySum = await getSubsidySum(values);
|
||
$calculation.element('tbxSubsidySum').setValue(subsidySum);
|
||
},
|
||
{
|
||
delay: 5,
|
||
equals: comparer.shallow,
|
||
}
|
||
);
|
||
}
|