diff --git a/packages/server/src/api/controllers/Purchases/Bills.ts b/packages/server/src/api/controllers/Purchases/Bills.ts
index 5752fe39c..71fcf2f5c 100644
--- a/packages/server/src/api/controllers/Purchases/Bills.ts
+++ b/packages/server/src/api/controllers/Purchases/Bills.ts
@@ -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(),
];
}
diff --git a/packages/server/src/api/controllers/Purchases/VendorCredit.ts b/packages/server/src/api/controllers/Purchases/VendorCredit.ts
index e44906e40..6f65ca700 100644
--- a/packages/server/src/api/controllers/Purchases/VendorCredit.ts
+++ b/packages/server/src/api/controllers/Purchases/VendorCredit.ts
@@ -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(),
];
}
diff --git a/packages/server/src/models/VendorCredit.ts b/packages/server/src/models/VendorCredit.ts
index c2a8a0131..24f96afa8 100644
--- a/packages/server/src/models/VendorCredit.ts
+++ b/packages/server/src/models/VendorCredit.ts
@@ -73,12 +73,7 @@ export default class VendorCredit extends mixin(TenantModel, [
* @returns {number}
*/
get total() {
- const discountAmount =
- this.discountType === DiscountType.Amount
- ? this.discount
- : this.subtotal * (this.discount / 100);
-
- return this.subtotal - discountAmount - this.adjustment;
+ return this.subtotal - this.discountAmount - this.adjustment;
}
/**
diff --git a/packages/webapp/src/containers/Sales/Estimates/EstimateForm/EstimateForm.tsx b/packages/webapp/src/containers/Sales/Estimates/EstimateForm/EstimateForm.tsx
index 119553e25..dcc117900 100644
--- a/packages/webapp/src/containers/Sales/Estimates/EstimateForm/EstimateForm.tsx
+++ b/packages/webapp/src/containers/Sales/Estimates/EstimateForm/EstimateForm.tsx
@@ -160,7 +160,7 @@ function EstimateForm({
overflow: 'hidden',
display: 'flex',
flexDirection: 'column',
- flex: 1
+ flex: 1,
})}
>
@@ -177,7 +177,7 @@ function EstimateForm({
{/*------- Dialogs -------*/}
- {/* */}
+
{/*------- Effects -------*/}