feat: enhance discount and adjustment validation in Bills and Vendor Credit controllers

This commit is contained in:
Ahmed Bouhuolia
2024-12-03 14:22:49 +02:00
parent 1010d97a92
commit 542763ddf5
4 changed files with 30 additions and 9 deletions

View File

@@ -154,6 +154,9 @@ export default class BillsController extends BaseController {
.default(DiscountType.Amount)
.isIn([DiscountType.Amount, DiscountType.Percentage]),
check('discount').optional().isDecimal().toFloat(),
// # Adjustment
check('adjustment').optional({ nullable: true }).isNumeric().toFloat(),
];
}
@@ -196,6 +199,15 @@ export default class BillsController extends BaseController {
check('attachments').isArray().optional(),
check('attachments.*.key').exists().isString(),
// # Discount
check('discount_type')
.default(DiscountType.Amount)
.isIn([DiscountType.Amount, DiscountType.Percentage]),
check('discount').optional().isDecimal().toFloat(),
// # Adjustment
check('adjustment').optional({ nullable: true }).isNumeric().toFloat(),
];
}

View File

@@ -3,6 +3,7 @@ import { check, param, query } from 'express-validator';
import { Service, Inject } from 'typedi';
import {
AbilitySubject,
DiscountType,
IVendorCreditCreateDTO,
IVendorCreditEditDTO,
VendorCreditAction,
@@ -186,7 +187,10 @@ export default class VendorCreditController extends BaseController {
// Discount.
check('discount').optional({ nullable: true }).isNumeric().toFloat(),
check('discount_type').optional({ nullable: true }).isString().trim(),
check('discount_type')
.optional({ nullable: true })
.isString()
.isIn([DiscountType.Percentage, DiscountType.Amount]),
// Adjustment.
check('adjustment').optional({ nullable: true }).isNumeric().toFloat(),
@@ -229,6 +233,16 @@ export default class VendorCreditController extends BaseController {
check('attachments').isArray().optional(),
check('attachments.*.key').exists().isString(),
// Discount.
check('discount').optional({ nullable: true }).isNumeric().toFloat(),
check('discount_type')
.optional({ nullable: true })
.isString()
.isIn([DiscountType.Percentage, DiscountType.Amount]),
// Adjustment.
check('adjustment').optional({ nullable: true }).isNumeric().toFloat(),
];
}