mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-18 22:00:31 +00:00
fix: fix notes.
This commit is contained in:
@@ -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 (
|
||||
<div className={Classes.DIALOG_BODY}>
|
||||
<div className="credit-remaining">
|
||||
<div className="credit-remaining__label">
|
||||
<T id={'reconcile_credit_note.dialog.credits_balance'} />
|
||||
</div>
|
||||
<div className="credit-remaining__balance">
|
||||
{formatted_credits_remaining}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/*------------ Reconcile credit entries table -----------*/}
|
||||
<FastField name={'entries'}>
|
||||
{({
|
||||
@@ -50,7 +63,7 @@ export default function ReconcileCreditNoteFormFields() {
|
||||
value={formattedAmount(totalAmount, currency_code)}
|
||||
/>
|
||||
<TotalLine
|
||||
title={<T id={'reconcile_credit_note.dialog.remaining_credits'}/>}
|
||||
title={<T id={'reconcile_credit_note.dialog.remaining_credits'} />}
|
||||
value={formatted_credits_remaining}
|
||||
/>
|
||||
</TotalLines>
|
||||
|
||||
@@ -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 (
|
||||
<div className={Classes.DIALOG_BODY}>
|
||||
<div className="credit-remaining">
|
||||
<div className="credit-remaining__label">
|
||||
<T id={'reconcile_vendor_note.dialog.credits_balance'} />
|
||||
</div>
|
||||
<div className="credit-remaining__balance">
|
||||
{formatted_credits_remaining}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<FastField name={'entries'}>
|
||||
{({
|
||||
form: { setFieldValue, values },
|
||||
@@ -41,13 +56,13 @@ export default function ReconcileVendorCreditFormFields() {
|
||||
title={
|
||||
<T id={'reconcile_vendor_credit.dialog.total_amount_to_credit'} />
|
||||
}
|
||||
value={formattedAmount(totalAmount, vendorCredit.currency_code)}
|
||||
value={formattedAmount(totalAmount, currency_code)}
|
||||
/>
|
||||
<TotalLine
|
||||
title={
|
||||
<T id={'reconcile_vendor_credit.dialog.remaining_credits'} />
|
||||
}
|
||||
value={vendorCredit.formatted_credits_remaining}
|
||||
value={formatted_credits_remaining}
|
||||
/>
|
||||
</TotalLines>
|
||||
</div>
|
||||
|
||||
@@ -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
|
||||
}
|
||||
>
|
||||
<DrawerHeaderContent
|
||||
|
||||
@@ -13,7 +13,7 @@ import CreditNoteDetailCls from '../../../style/components/Drawers/CreditNoteDet
|
||||
*/
|
||||
export default function CreditNoteDetailHeader() {
|
||||
const { creditNote } = useCreditNoteDetailDrawerContext();
|
||||
|
||||
|
||||
return (
|
||||
<div className={clsx(CreditNoteDetailCls.detail_panel_header)}>
|
||||
<DetailsMenu>
|
||||
@@ -34,12 +34,16 @@ export default function CreditNoteDetailHeader() {
|
||||
<FormatDate value={creditNote.formatted_credit_note_date} />
|
||||
}
|
||||
/>
|
||||
<DetailItem
|
||||
label={intl.get('credit_note.drawer.label_credits_remaining')}
|
||||
children={creditNote.formatted_credits_remaining}
|
||||
/>
|
||||
</DetailsMenu>
|
||||
|
||||
<DetailsMenu direction={'horizantal'} minLabelSize={'140px'}>
|
||||
<DetailItem
|
||||
label={intl.get('credit_note.drawer.label_credits_remaining')}
|
||||
children={creditNote.formatted_credits_remaining}
|
||||
label={intl.get('reference')}
|
||||
children={creditNote.reference_no}
|
||||
/>
|
||||
<DetailItem
|
||||
label={intl.get('note')}
|
||||
|
||||
@@ -33,13 +33,16 @@ export default function VendorCreditDetailHeader() {
|
||||
<FormatDate value={vendorCredit.formatted_vendor_credit_date} />
|
||||
}
|
||||
/>
|
||||
<DetailItem
|
||||
label={intl.get('vendor_credit.drawer.label_credits_remaining')}
|
||||
children={vendorCredit.formatted_credits_remaining}
|
||||
/>
|
||||
</DetailsMenu>
|
||||
|
||||
<DetailsMenu direction={'horizantal'} minLabelSize={'140px'}>
|
||||
<DetailItem
|
||||
label={intl.get('vendor_credit.drawer.label_credits_remaining')}
|
||||
children={vendorCredit.credits_remaining}
|
||||
// children={vendorCredit.formatted_credits_remaining}
|
||||
label={intl.get('reference')}
|
||||
children={vendorCredit.reference_no}
|
||||
/>
|
||||
|
||||
<DetailItem
|
||||
|
||||
@@ -67,7 +67,7 @@ function VendorCreditNoteFormProvider({ vendorCreditId, ...props }) {
|
||||
return (
|
||||
<DashboardInsider
|
||||
loading={isItemsLoading || isVendorsLoading || isVendorCreditLoading}
|
||||
name={'vendor-credits-form'}
|
||||
name={'vendor-credit-form'}
|
||||
>
|
||||
<VendorCreditNoteFormContext.Provider value={provider} {...props} />
|
||||
</DashboardInsider>
|
||||
|
||||
@@ -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)],
|
||||
};
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -73,7 +73,7 @@ function CreditNoteFormProvider({ creditNoteId, ...props }) {
|
||||
return (
|
||||
<DashboardInsider
|
||||
loading={isItemsLoading || isCustomersLoading || isCreditNoteLoading}
|
||||
name={'credit-notes-form'}
|
||||
name={'credit-note-form'}
|
||||
>
|
||||
<CreditNoteFormContext.Provider value={provider} {...props} />
|
||||
</DashboardInsider>
|
||||
|
||||
@@ -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)],
|
||||
|
||||
Reference in New Issue
Block a user