recalc: fix tbxLeaseObjectPrice validation

This commit is contained in:
vchikalkin 2023-04-10 17:59:10 +03:00
parent 5a5dd39996
commit aaf6146886
2 changed files with 17 additions and 14 deletions

View File

@ -26,24 +26,24 @@ export function common({ store, apolloClient }: ProcessContext) {
reaction(
() =>
$calculation.$values.getValues([
'supplierDiscountRub',
'discountRub',
'addEquipmentPrice',
'importProgramSum',
'plPriceRub',
]),
({ supplierDiscountRub, importProgramSum, addEquipmentPrice, plPriceRub }) => {
({ discountRub, importProgramSum, addEquipmentPrice, plPriceRub }) => {
const price = plPriceRub + addEquipmentPrice - importProgramSum;
const maxPriceChange =
price - supplierDiscountRub < 800_000
? price - supplierDiscountRub + 50_000
: (price - supplierDiscountRub) * 1.05;
price - discountRub < 800_000
? price - discountRub + 50_000
: (price - discountRub) * 1.05;
$calculation.element('tbxMaxPriceChange').setValue(maxPriceChange);
const minPriceChange =
price - supplierDiscountRub < 800_000
? price - supplierDiscountRub - 50_000
: (price - supplierDiscountRub) * 0.95;
price - discountRub < 800_000
? price - discountRub - 50_000
: (price - discountRub) * 0.95;
$calculation.element('tbxMinPriceChange').setValue(minPriceChange);
}

View File

@ -12,6 +12,7 @@ export function createValidationSchema({ apolloClient }: ValidationContext) {
balanceHolder: true,
countSeats: true,
dealerPerson: true,
discountRub: true,
firstPaymentPerc: true,
importProgramSum: true,
lastPaymentPerc: true,
@ -25,7 +26,6 @@ export function createValidationSchema({ apolloClient }: ValidationContext) {
product: true,
quote: true,
recalcWithRevision: true,
supplierDiscountRub: true,
}).superRefine(
async (
{
@ -37,7 +37,7 @@ export function createValidationSchema({ apolloClient }: ValidationContext) {
product: productId,
quote: quoteId,
recalcWithRevision,
supplierDiscountRub,
discountRub,
plPriceRub,
firstPaymentPerc,
leaseObjectCount,
@ -81,8 +81,9 @@ export function createValidationSchema({ apolloClient }: ValidationContext) {
dealerPerson?.evo_supplier_type !== 100_000_001 &&
!evo_baseproduct?.evo_sale_without_nds &&
Boolean(
quote?.evo_max_price_change &&
plPriceRub - supplierDiscountRub + addEquipmentPrice - importProgramSum >
plPriceRub &&
quote?.evo_max_price_change &&
plPriceRub - discountRub + addEquipmentPrice - importProgramSum >
quote.evo_max_price_change
);
@ -104,7 +105,8 @@ export function createValidationSchema({ apolloClient }: ValidationContext) {
quote.evo_discount_supplier_currency &&
quote.evo_equip_price &&
quote.evo_program_import_subsidy_sum &&
plPriceRub - supplierDiscountRub + addEquipmentPrice - importProgramSum >
plPriceRub &&
plPriceRub - discountRub + addEquipmentPrice - importProgramSum >
quote?.evo_supplier_currency_price -
quote.evo_discount_supplier_currency +
quote.evo_equip_price -
@ -115,7 +117,8 @@ export function createValidationSchema({ apolloClient }: ValidationContext) {
!evo_baseproduct?.evo_sale_without_nds &&
Boolean(
quote?.evo_min_change_price &&
plPriceRub - supplierDiscountRub + addEquipmentPrice - importProgramSum <
plPriceRub &&
plPriceRub - discountRub + addEquipmentPrice - importProgramSum <
quote.evo_min_change_price
);