diff --git a/packages/server/src/models/Bill.ts b/packages/server/src/models/Bill.ts
index 06a1356ee..41e6364d4 100644
--- a/packages/server/src/models/Bill.ts
+++ b/packages/server/src/models/Bill.ts
@@ -53,6 +53,10 @@ export default class Bill extends mixin(TenantModel, [
'localAllocatedCostAmount',
'billableAmount',
'amountLocal',
+
+ 'discountAmount',
+ 'discountPercentage',
+
'subtotal',
'subtotalLocal',
'subtotalExludingTax',
diff --git a/packages/server/src/models/VendorCredit.ts b/packages/server/src/models/VendorCredit.ts
index a880ac623..c2a8a0131 100644
--- a/packages/server/src/models/VendorCredit.ts
+++ b/packages/server/src/models/VendorCredit.ts
@@ -26,14 +26,6 @@ export default class VendorCredit extends mixin(TenantModel, [
static get tableName() {
return 'vendor_credits';
}
-
- /**
- * Virtual attributes.
- */
- static get virtualAttributes() {
- return ['localAmount'];
- }
-
/**
* Vendor credit amount in local currency.
* @returns {number}
@@ -81,9 +73,10 @@ export default class VendorCredit extends mixin(TenantModel, [
* @returns {number}
*/
get total() {
- const discountAmount = this.discountType === DiscountType.Amount
- ? this.discount
- : this.subtotal * (this.discount / 100);
+ const discountAmount =
+ this.discountType === DiscountType.Amount
+ ? this.discount
+ : this.subtotal * (this.discount / 100);
return this.subtotal - discountAmount - this.adjustment;
}
@@ -182,7 +175,21 @@ export default class VendorCredit extends mixin(TenantModel, [
* Virtual attributes.
*/
static get virtualAttributes() {
- return ['isDraft', 'isPublished', 'isOpen', 'isClosed', 'creditsRemaining'];
+ return [
+ 'isDraft',
+ 'isPublished',
+ 'isOpen',
+ 'isClosed',
+
+ 'creditsRemaining',
+ 'localAmount',
+
+ 'discountAmount',
+ 'discountPercentage',
+
+ 'total',
+ 'totalLocal',
+ ];
}
/**
diff --git a/packages/webapp/src/containers/Drawers/BillDrawer/BillDetailTableFooter.tsx b/packages/webapp/src/containers/Drawers/BillDrawer/BillDetailTableFooter.tsx
index 17c29c1a4..458705217 100644
--- a/packages/webapp/src/containers/Drawers/BillDrawer/BillDetailTableFooter.tsx
+++ b/packages/webapp/src/containers/Drawers/BillDrawer/BillDetailTableFooter.tsx
@@ -31,6 +31,17 @@ export function BillDetailTableFooter() {
textStyle={TotalLineTextStyle.Regular}
/>
))}
+ {bill.discount_amount > 0 && (
+
+ )}
}
value={bill.total_formatted}
diff --git a/packages/webapp/src/containers/Drawers/CreditNoteDetailDrawer/CreditNoteDetailTableFooter.tsx b/packages/webapp/src/containers/Drawers/CreditNoteDetailDrawer/CreditNoteDetailTableFooter.tsx
index 6171686cf..881ac1def 100644
--- a/packages/webapp/src/containers/Drawers/CreditNoteDetailDrawer/CreditNoteDetailTableFooter.tsx
+++ b/packages/webapp/src/containers/Drawers/CreditNoteDetailDrawer/CreditNoteDetailTableFooter.tsx
@@ -22,9 +22,20 @@ export default function CreditNoteDetailTableFooter() {
title={}
value={creditNote.formatted_subtotal}
/>
+ {creditNote.discount_amount > 0 && (
+
+ )}
}
- value={creditNote.formatted_amount}
+ value={creditNote.total_formatted}
borderStyle={TotalLineBorderStyle.DoubleDark}
textStyle={TotalLineTextStyle.Bold}
/>
diff --git a/packages/webapp/src/containers/Drawers/EstimateDetailDrawer/EstimateDetailTableFooter.tsx b/packages/webapp/src/containers/Drawers/EstimateDetailDrawer/EstimateDetailTableFooter.tsx
index 8bc3ee96a..ade4f2690 100644
--- a/packages/webapp/src/containers/Drawers/EstimateDetailDrawer/EstimateDetailTableFooter.tsx
+++ b/packages/webapp/src/containers/Drawers/EstimateDetailDrawer/EstimateDetailTableFooter.tsx
@@ -25,6 +25,17 @@ export default function EstimateDetailTableFooter() {
value={estimate.formatted_subtotal}
borderStyle={TotalLineBorderStyle.SingleDark}
/>
+ {estimate.discount_amount > 0 && (
+
+ )}
}
value={estimate.formatted_amount}
diff --git a/packages/webapp/src/containers/Drawers/InvoiceDetailDrawer/InvoiceDetailTableFooter.tsx b/packages/webapp/src/containers/Drawers/InvoiceDetailDrawer/InvoiceDetailTableFooter.tsx
index dd225739c..b1de061a1 100644
--- a/packages/webapp/src/containers/Drawers/InvoiceDetailDrawer/InvoiceDetailTableFooter.tsx
+++ b/packages/webapp/src/containers/Drawers/InvoiceDetailDrawer/InvoiceDetailTableFooter.tsx
@@ -26,6 +26,17 @@ export function InvoiceDetailTableFooter() {
value={invoice.subtotal_formatted}
borderStyle={TotalLineBorderStyle.SingleDark}
/>
+ {invoice.discount_amount > 0 && (
+
+ )}
{invoice.taxes.map((taxRate) => (
))}
+
}
value={invoice.total_formatted}
diff --git a/packages/webapp/src/containers/Drawers/ReceiptDetailDrawer/ReceiptDetailTableFooter.tsx b/packages/webapp/src/containers/Drawers/ReceiptDetailDrawer/ReceiptDetailTableFooter.tsx
index b5687a091..d142f0775 100644
--- a/packages/webapp/src/containers/Drawers/ReceiptDetailDrawer/ReceiptDetailTableFooter.tsx
+++ b/packages/webapp/src/containers/Drawers/ReceiptDetailDrawer/ReceiptDetailTableFooter.tsx
@@ -25,6 +25,17 @@ export default function ReceiptDetailTableFooter() {
title={}
value={receipt.formatted_subtotal}
/>
+ {receipt.discount_amount > 0 && (
+
+ )}
}
value={receipt.formatted_amount}
diff --git a/packages/webapp/src/containers/Drawers/VendorCreditDetailDrawer/VendorCreditDetailDrawerFooter.tsx b/packages/webapp/src/containers/Drawers/VendorCreditDetailDrawer/VendorCreditDetailDrawerFooter.tsx
index 0bfd435e9..9c81a3b36 100644
--- a/packages/webapp/src/containers/Drawers/VendorCreditDetailDrawer/VendorCreditDetailDrawerFooter.tsx
+++ b/packages/webapp/src/containers/Drawers/VendorCreditDetailDrawer/VendorCreditDetailDrawerFooter.tsx
@@ -25,6 +25,17 @@ export default function VendorCreditDetailDrawerFooter() {
value={vendorCredit.formatted_subtotal}
borderStyle={TotalLineBorderStyle.SingleDark}
/>
+ {vendorCredit.discount_amount > 0 && (
+
+ )}
}
value={vendorCredit.formatted_amount}