diff --git a/src/containers/Dialogs/ReconcileCreditNoteDialog/ReconcileCreditNoteFormFields.js b/src/containers/Dialogs/ReconcileCreditNoteDialog/ReconcileCreditNoteFormFields.js
index a035fd95d..af46248e0 100644
--- a/src/containers/Dialogs/ReconcileCreditNoteDialog/ReconcileCreditNoteFormFields.js
+++ b/src/containers/Dialogs/ReconcileCreditNoteDialog/ReconcileCreditNoteFormFields.js
@@ -2,7 +2,7 @@ import React from 'react';
import { FastField, useFormikContext } from 'formik';
import { Classes } from '@blueprintjs/core';
import { T, TotalLines, TotalLine } from 'components';
-import { getEntriesTotal } from 'containers/Entries/utils';
+import { sumBy, subtract } from 'lodash';
import ReconcileCreditNoteEntriesTable from './ReconcileCreditNoteEntriesTable';
import { useReconcileCreditNoteContext } from './ReconcileCreditNoteFormProvider';
import { formattedAmount } from 'utils';
@@ -12,19 +12,32 @@ import { formattedAmount } from 'utils';
*/
export default function ReconcileCreditNoteFormFields() {
const {
- creditNote: { formatted_credits_remaining, currency_code },
+ creditNote: {
+ formatted_credits_remaining,
+ credits_remaining,
+ currency_code,
+ },
} = useReconcileCreditNoteContext();
const { values } = useFormikContext();
// Calculate the total amount.
- const totalAmount = React.useMemo(
- () => getEntriesTotal(values.entries),
- [values.entries],
- );
+ const totalAmount = React.useMemo(() => {
+ const total = sumBy(values.entries, 'amount');
+ return subtract(credits_remaining, total);
+ }, [values.entries]);
return (
+
+
+
+
+
+ {formatted_credits_remaining}
+
+
+
{/*------------ Reconcile credit entries table -----------*/}
{({
@@ -50,7 +63,7 @@ export default function ReconcileCreditNoteFormFields() {
value={formattedAmount(totalAmount, currency_code)}
/>
}
+ title={}
value={formatted_credits_remaining}
/>
diff --git a/src/containers/Dialogs/ReconcileVendorCreditDialog/ReconcileVendorCreditFormFields.js b/src/containers/Dialogs/ReconcileVendorCreditDialog/ReconcileVendorCreditFormFields.js
index 531e18b82..e95ef43e4 100644
--- a/src/containers/Dialogs/ReconcileVendorCreditDialog/ReconcileVendorCreditFormFields.js
+++ b/src/containers/Dialogs/ReconcileVendorCreditDialog/ReconcileVendorCreditFormFields.js
@@ -1,25 +1,40 @@
import React from 'react';
import { FastField, useFormikContext } from 'formik';
import { Classes } from '@blueprintjs/core';
+import { sumBy, subtract } from 'lodash';
import { T, TotalLines, TotalLine } from 'components';
-import { getEntriesTotal } from 'containers/Entries/utils';
import ReconcileVendorCreditEntriesTable from './ReconcileVendorCreditEntriesTable';
import { useReconcileVendorCreditContext } from './ReconcileVendorCreditFormProvider';
import { formattedAmount } from 'utils';
export default function ReconcileVendorCreditFormFields() {
- const { vendorCredit } = useReconcileVendorCreditContext();
+ const {
+ vendorCredit: {
+ currency_code,
+ credits_remaining,
+ formatted_credits_remaining,
+ },
+ } = useReconcileVendorCreditContext();
const { values } = useFormikContext();
// Calculate the total amount.
- const totalAmount = React.useMemo(
- () => getEntriesTotal(values.entries),
- [values.entries],
- );
+ const totalAmount = React.useMemo(() => {
+ const total = sumBy(values.entries, 'amount');
+ return subtract(credits_remaining, total);
+ }, [values.entries]);
return (
+
+
+
+
+
+ {formatted_credits_remaining}
+
+
+
{({
form: { setFieldValue, values },
@@ -41,13 +56,13 @@ export default function ReconcileVendorCreditFormFields() {
title={
}
- value={formattedAmount(totalAmount, vendorCredit.currency_code)}
+ value={formattedAmount(totalAmount, currency_code)}
/>
}
- value={vendorCredit.formatted_credits_remaining}
+ value={formatted_credits_remaining}
/>
diff --git a/src/containers/Drawers/CreditNoteDetailDrawer/CreditNoteDetailDrawerProvider.js b/src/containers/Drawers/CreditNoteDetailDrawer/CreditNoteDetailDrawerProvider.js
index 8f3bd7326..136722ca3 100644
--- a/src/containers/Drawers/CreditNoteDetailDrawer/CreditNoteDetailDrawerProvider.js
+++ b/src/containers/Drawers/CreditNoteDetailDrawer/CreditNoteDetailDrawerProvider.js
@@ -3,6 +3,7 @@ import intl from 'react-intl-universal';
import {
useCreditNote,
useRefundCreditNote,
+ useReconcileCreditNote,
useReconcileCreditNotes,
} from 'hooks/query';
import { DrawerHeaderContent, DrawerLoading } from 'components';
@@ -33,15 +34,21 @@ function CreditNoteDetailDrawerProvider({ creditNoteId, ...props }) {
// Handle fetch refund credit note.
const {
data: reconcileCreditNotes,
- isFetching: isReconcileCreditNoteFetching,
isLoading: isReconcileCreditNoteLoading,
} = useReconcileCreditNotes(creditNoteId, {
enabled: !!creditNoteId,
});
+ // Handle fetch reconcile credit note details.
+ const { isLoading: isReconcileCreditLoading, data: reconcileCreditNote } =
+ useReconcileCreditNote(creditNoteId, {
+ enabled: !!creditNoteId,
+ });
+
const provider = {
creditNote,
refundCreditNote,
+ reconcileCreditNote,
reconcileCreditNotes,
isRefundCreditNoteLoading,
@@ -54,7 +61,8 @@ function CreditNoteDetailDrawerProvider({ creditNoteId, ...props }) {
loading={
isCreditNoteLoading ||
isRefundCreditNoteLoading ||
- isReconcileCreditNoteLoading
+ isReconcileCreditNoteLoading ||
+ isReconcileCreditLoading
}
>
@@ -34,12 +34,16 @@ export default function CreditNoteDetailHeader() {
}
/>
+
}
/>
+
diff --git a/src/containers/Purchases/CreditNotes/CreditNoteForm/utils.js b/src/containers/Purchases/CreditNotes/CreditNoteForm/utils.js
index 9add47fe9..554cfc3e0 100644
--- a/src/containers/Purchases/CreditNotes/CreditNoteForm/utils.js
+++ b/src/containers/Purchases/CreditNotes/CreditNoteForm/utils.js
@@ -35,7 +35,7 @@ export const defaultVendorsCreditNote = {
vendor_credit_no_manually: false,
open: '',
vendor_credit_date: moment(new Date()).format('YYYY-MM-DD'),
- // reference_no: '',
+ reference_no: '',
note: '',
entries: [...repeatValue(defaultCreditNoteEntry, MIN_LINES_NUMBER)],
};
diff --git a/src/containers/Purchases/CreditNotes/CreditNotesLanding/components.js b/src/containers/Purchases/CreditNotes/CreditNotesLanding/components.js
index 88a1c1f40..b9af4c70e 100644
--- a/src/containers/Purchases/CreditNotes/CreditNotesLanding/components.js
+++ b/src/containers/Purchases/CreditNotes/CreditNotesLanding/components.js
@@ -140,7 +140,7 @@ export function useVendorsCreditNoteTableColumns() {
{
id: 'balance',
Header: intl.get('balance'),
- accessor: 'credits_remaining',
+ accessor: 'formatted_credits_remaining',
width: 120,
align: 'right',
clickable: true,
diff --git a/src/containers/Sales/CreditNotes/CreditNoteForm/CreditNoteFormProvider.js b/src/containers/Sales/CreditNotes/CreditNoteForm/CreditNoteFormProvider.js
index 210875d51..569bd27cc 100644
--- a/src/containers/Sales/CreditNotes/CreditNoteForm/CreditNoteFormProvider.js
+++ b/src/containers/Sales/CreditNotes/CreditNoteForm/CreditNoteFormProvider.js
@@ -73,7 +73,7 @@ function CreditNoteFormProvider({ creditNoteId, ...props }) {
return (
diff --git a/src/containers/Sales/CreditNotes/CreditNoteForm/utils.js b/src/containers/Sales/CreditNotes/CreditNoteForm/utils.js
index d2825947b..c6ca1721f 100644
--- a/src/containers/Sales/CreditNotes/CreditNoteForm/utils.js
+++ b/src/containers/Sales/CreditNotes/CreditNoteForm/utils.js
@@ -36,7 +36,7 @@ export const defaultCreditNote = {
credit_note_number: '',
credit_note_no_manually: false,
open: '',
- // reference_no: '',
+ reference_no: '',
note: '',
terms_conditions: '',
entries: [...repeatValue(defaultCreditNoteEntry, MIN_LINES_NUMBER)],
diff --git a/src/lang/en/index.json b/src/lang/en/index.json
index 31ac4a1ce..98e74ba2c 100644
--- a/src/lang/en/index.json
+++ b/src/lang/en/index.json
@@ -1581,6 +1581,7 @@
"vendor_credit_opened.are_sure_to_open_this_credit": "Are you sure you want to open this vendor credit?",
"reconcile_credit_note.label": "Reconcile credit note with invoices.",
"reconcile_credit_note.dialog.total_amount_to_credit": "Total amount to credit",
+ "reconcile_credit_note.dialog.credits_balance": "Credits balance:",
"reconcile_credit_note.dialog.remaining_credits": "Remaining credits",
"reconcile_credit_note.column.remaining_amount": "Remaining amount",
"reconcile_credit_note.column.amount_to_credit": "Amount to credit",
@@ -1595,6 +1596,7 @@
"reconcile_vendor_credit.dialog.success_message": "The vendor credit has been applied to the given bills successfully",
"reconcile_vendor_credit.alert.there_is_no_open_bills": "There is no open bills associated to credit note vendor.",
"reconcile_vendor_credit.dialog.total_amount_to_credit": "Total amount to credit",
+ "reconcile_vendor_note.dialog.credits_balance": "Credits balance:",
"reconcile_vendor_credit.dialog.remaining_credits": "Remaining amount",
"reconcile_vendor_credit.column.bill_number": "Bill #",
"reconcile_vendor_credit.column.remaining_amount": "Remaining amount",
diff --git a/src/style/pages/CreditNote/PageForm.scss b/src/style/pages/CreditNote/PageForm.scss
index a5dab2707..8da43b9aa 100644
--- a/src/style/pages/CreditNote/PageForm.scss
+++ b/src/style/pages/CreditNote/PageForm.scss
@@ -36,7 +36,7 @@ body.page-credit-note-edit {
}
}
#{$self}__footer {
- .form-group--customer_notes,
+ .form-group--note,
.form-group--terms_conditions {
max-width: 450px;
width: 100%;
diff --git a/src/style/pages/ReconcileCreditNote/ReconcileCreditNoteForm.scss b/src/style/pages/ReconcileCreditNote/ReconcileCreditNoteForm.scss
index 3a0e5c363..d041ea4d3 100644
--- a/src/style/pages/ReconcileCreditNote/ReconcileCreditNoteForm.scss
+++ b/src/style/pages/ReconcileCreditNote/ReconcileCreditNoteForm.scss
@@ -62,6 +62,20 @@
}
}
+ .credit-remaining {
+ display: flex;
+ justify-content: flex-end;
+ padding-top: 5px;
+ padding-bottom: 15px;
+ &__label {
+ }
+ &__balance {
+ font-weight: 500;
+ color: #343463;
+ margin-left: 5px;
+ }
+ }
+
.bp3-callout {
font-size: 14px;
}
diff --git a/src/style/pages/ReconcileVendorCredit/ReconcileVendorCreditForm.scss b/src/style/pages/ReconcileVendorCredit/ReconcileVendorCreditForm.scss
index a5c09945f..7461bf445 100644
--- a/src/style/pages/ReconcileVendorCredit/ReconcileVendorCreditForm.scss
+++ b/src/style/pages/ReconcileVendorCredit/ReconcileVendorCreditForm.scss
@@ -66,6 +66,20 @@
.bp3-callout {
font-size: 14px;
}
+
+ .credit-remaining {
+ display: flex;
+ justify-content: flex-end;
+ padding-top: 5px;
+ padding-bottom: 15px;
+ &__label {
+ }
+ &__balance {
+ font-weight: 500;
+ color: #343463;
+ margin-left: 5px;
+ }
+ }
.bp3-dialog-footer {
display: flex;
justify-content: flex-start;
diff --git a/src/style/pages/VendorsCreditNote/PageForm.scss b/src/style/pages/VendorsCreditNote/PageForm.scss
index ebddd4d3a..79be9954b 100644
--- a/src/style/pages/VendorsCreditNote/PageForm.scss
+++ b/src/style/pages/VendorsCreditNote/PageForm.scss
@@ -5,7 +5,7 @@ body.page-vendor-credit-note-edit {
}
}
-.dashboard__insider--vendor-credit-note-form {
+.dashboard__insider--vendor-credit-form {
padding-bottom: 64px;
}