mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-18 05:40:31 +00:00
feat: implement discount display in various detail drawers
- Added discount amount and percentage display in Bill, Credit Note, Estimate, Invoice, Receipt, and Vendor Credit detail tables. - Updated models to include discount-related attributes for better data handling. - Enhanced user interface to show discount information when applicable, improving clarity in financial documents.
This commit is contained in:
@@ -53,6 +53,10 @@ export default class Bill extends mixin(TenantModel, [
|
||||
'localAllocatedCostAmount',
|
||||
'billableAmount',
|
||||
'amountLocal',
|
||||
|
||||
'discountAmount',
|
||||
'discountPercentage',
|
||||
|
||||
'subtotal',
|
||||
'subtotalLocal',
|
||||
'subtotalExludingTax',
|
||||
|
||||
@@ -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',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -31,6 +31,17 @@ export function BillDetailTableFooter() {
|
||||
textStyle={TotalLineTextStyle.Regular}
|
||||
/>
|
||||
))}
|
||||
{bill.discount_amount > 0 && (
|
||||
<TotalLine
|
||||
title={
|
||||
bill.discount_percentage_formatted
|
||||
? `Discount [${bill.discount_percentage_formatted}]`
|
||||
: 'Discount'
|
||||
}
|
||||
value={bill.discount_amount_formatted}
|
||||
textStyle={TotalLineTextStyle.Regular}
|
||||
/>
|
||||
)}
|
||||
<TotalLine
|
||||
title={<T id={'bill.details.total'} />}
|
||||
value={bill.total_formatted}
|
||||
|
||||
@@ -22,9 +22,20 @@ export default function CreditNoteDetailTableFooter() {
|
||||
title={<T id={'credit_note.drawer.label_subtotal'} />}
|
||||
value={creditNote.formatted_subtotal}
|
||||
/>
|
||||
{creditNote.discount_amount > 0 && (
|
||||
<TotalLine
|
||||
title={
|
||||
creditNote.discount_percentage_formatted
|
||||
? `Discount [${creditNote.discount_percentage_formatted}]`
|
||||
: 'Discount'
|
||||
}
|
||||
value={creditNote.discount_amount_formatted}
|
||||
borderStyle={TotalLineBorderStyle.Dark}
|
||||
/>
|
||||
)}
|
||||
<TotalLine
|
||||
title={<T id={'credit_note.drawer.label_total'} />}
|
||||
value={creditNote.formatted_amount}
|
||||
value={creditNote.total_formatted}
|
||||
borderStyle={TotalLineBorderStyle.DoubleDark}
|
||||
textStyle={TotalLineTextStyle.Bold}
|
||||
/>
|
||||
|
||||
@@ -25,6 +25,17 @@ export default function EstimateDetailTableFooter() {
|
||||
value={estimate.formatted_subtotal}
|
||||
borderStyle={TotalLineBorderStyle.SingleDark}
|
||||
/>
|
||||
{estimate.discount_amount > 0 && (
|
||||
<TotalLine
|
||||
title={
|
||||
estimate.discount_percentage_formatted
|
||||
? `Discount [${invoice.discount_percentage_formatted}]`
|
||||
: 'Discount'
|
||||
}
|
||||
value={estimate.discount_amount_formatted}
|
||||
textStyle={TotalLineTextStyle.Regular}
|
||||
/>
|
||||
)}
|
||||
<TotalLine
|
||||
title={<T id={'estimate.details.total'} />}
|
||||
value={estimate.formatted_amount}
|
||||
|
||||
@@ -26,6 +26,17 @@ export function InvoiceDetailTableFooter() {
|
||||
value={invoice.subtotal_formatted}
|
||||
borderStyle={TotalLineBorderStyle.SingleDark}
|
||||
/>
|
||||
{invoice.discount_amount > 0 && (
|
||||
<TotalLine
|
||||
title={
|
||||
invoice.discount_percentage_formatted
|
||||
? `Discount [${invoice.discount_percentage_formatted}]`
|
||||
: 'Discount'
|
||||
}
|
||||
value={invoice.discount_amount_formatted}
|
||||
textStyle={TotalLineTextStyle.Regular}
|
||||
/>
|
||||
)}
|
||||
{invoice.taxes.map((taxRate) => (
|
||||
<TotalLine
|
||||
key={taxRate.id}
|
||||
@@ -34,6 +45,7 @@ export function InvoiceDetailTableFooter() {
|
||||
textStyle={TotalLineTextStyle.Regular}
|
||||
/>
|
||||
))}
|
||||
|
||||
<TotalLine
|
||||
title={<T id={'invoice.details.total'} />}
|
||||
value={invoice.total_formatted}
|
||||
|
||||
@@ -25,6 +25,17 @@ export default function ReceiptDetailTableFooter() {
|
||||
title={<T id={'receipt.details.subtotal'} />}
|
||||
value={receipt.formatted_subtotal}
|
||||
/>
|
||||
{receipt.discount_amount > 0 && (
|
||||
<TotalLine
|
||||
title={
|
||||
receipt.discount_percentage_formatted
|
||||
? `Discount [${invoice.discount_percentage_formatted}]`
|
||||
: 'Discount'
|
||||
}
|
||||
value={receipt.discount_amount_formatted}
|
||||
textStyle={TotalLineTextStyle.Regular}
|
||||
/>
|
||||
)}
|
||||
<TotalLine
|
||||
title={<T id={'receipt.details.total'} />}
|
||||
value={receipt.formatted_amount}
|
||||
|
||||
@@ -25,6 +25,17 @@ export default function VendorCreditDetailDrawerFooter() {
|
||||
value={vendorCredit.formatted_subtotal}
|
||||
borderStyle={TotalLineBorderStyle.SingleDark}
|
||||
/>
|
||||
{vendorCredit.discount_amount > 0 && (
|
||||
<TotalLine
|
||||
title={
|
||||
bill.discount_percentage_formatted
|
||||
? `Discount [${bill.discount_percentage_formatted}]`
|
||||
: 'Discount'
|
||||
}
|
||||
value={vendorCredit.discount_amount_formatted}
|
||||
textStyle={TotalLineTextStyle.Regular}
|
||||
/>
|
||||
)}
|
||||
<TotalLine
|
||||
title={<T id={'vendor_credit.drawer.label_total'} />}
|
||||
value={vendorCredit.formatted_amount}
|
||||
|
||||
Reference in New Issue
Block a user