feat: discount sale and purchase transactions

This commit is contained in:
Ahmed Bouhuolia
2024-11-28 11:14:16 +02:00
parent aa4aaeb612
commit df8391201f
19 changed files with 377 additions and 10 deletions

View File

@@ -183,6 +183,13 @@ 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().trim(),
// Adjustment.
check('adjustment').optional({ nullable: true }).isNumeric().toFloat(),
];
}

View File

@@ -244,11 +244,19 @@ export default class PaymentReceivesController extends BaseController {
.isNumeric()
.toInt(),
// Attachments.
check('attachments').isArray().optional(),
check('attachments.*.key').exists().isString(),
// Pdf template id.
check('pdf_template_id').optional({ nullable: true }).isNumeric().toInt(),
// Discount.
check('discount').optional({ nullable: true }).isNumeric().toFloat(),
check('discount_type').optional({ nullable: true }).isString().trim(),
// Adjustment.
check('adjustment').optional({ nullable: true }).isNumeric().toFloat(),
];
}

View File

@@ -3,6 +3,7 @@ import { body, check, param, query } from 'express-validator';
import { Inject, Service } from 'typedi';
import {
AbilitySubject,
DiscountType,
ISaleEstimateDTO,
SaleEstimateAction,
SaleEstimateMailOptionsDTO,
@@ -195,11 +196,21 @@ export default class SalesEstimatesController extends BaseController {
check('terms_conditions').optional().trim(),
check('send_to_email').optional().trim(),
// # Attachments
check('attachments').isArray().optional(),
check('attachments.*.key').exists().isString(),
// Pdf template id.
// # Pdf template id.
check('pdf_template_id').optional({ nullable: true }).isNumeric().toInt(),
// # Discount
check('discount').optional().isNumeric().toFloat(),
check('discount_type')
.default(DiscountType.Amount)
.isIn([DiscountType.Amount, DiscountType.Percentage]),
// # Adjustment
check('adjustment').optional().isNumeric().toFloat(),
];
}