This commit is contained in:
a.bouhuolia
2021-09-08 16:32:59 +02:00
49 changed files with 305 additions and 216 deletions

View File

@@ -20,14 +20,14 @@ import { ERROR } from 'common/errors';
import { useBillFormContext } from './BillFormProvider';
import { compose, orderingLinesIndexes, safeSumBy } from 'utils';
import { defaultBill, transformToEditForm } from './utils';
import withSettings from 'containers/Settings/withSettings';
import withCurrentOrganization from 'containers/Organization/withCurrentOrganization';
/**
* Bill form.
*/
function BillForm({
// #withSettings
baseCurrency,
// #withCurrentOrganization
organization: { base_currency },
}) {
const history = useHistory();
@@ -41,14 +41,14 @@ function BillForm({
...(!isEmpty(bill)
? {
...transformToEditForm(bill),
currency_code: baseCurrency,
currency_code: base_currency,
}
: {
...defaultBill,
currency_code: baseCurrency,
currency_code: base_currency,
}),
}),
[bill, baseCurrency],
[bill, base_currency],
);
// Transform response error to fields.
@@ -142,8 +142,4 @@ function BillForm({
</div>
);
}
export default compose(
withSettings(({ organizationSettings }) => ({
baseCurrency: organizationSettings?.baseCurrency,
})),
)(BillForm);
export default compose(withCurrentOrganization())(BillForm);

View File

@@ -8,22 +8,24 @@ import { CLASSES } from 'common/classes';
import BillFormHeaderFields from './BillFormHeaderFields';
import { PageFormBigNumber } from 'components';
import withSettings from 'containers/Settings/withSettings';
import withCurrentOrganization from 'containers/Organization/withCurrentOrganization';
import { compose } from 'redux';
/**
* Fill form header.
*/
function BillFormHeader({
// #withSettings
baseCurrency,
// #withCurrentOrganization
organization: { base_currency },
}) {
const { values } = useFormikContext();
// Calculate the total due amount of bill entries.
const totalDueAmount = useMemo(() => sumBy(values.entries, 'amount'), [
values.entries,
]);
const totalDueAmount = useMemo(
() => sumBy(values.entries, 'amount'),
[values.entries],
);
return (
<div className={classNames(CLASSES.PAGE_FORM_HEADER)}>
@@ -31,13 +33,9 @@ function BillFormHeader({
<PageFormBigNumber
label={intl.get('due_amount')}
amount={totalDueAmount}
currencyCode={baseCurrency}
currencyCode={base_currency}
/>
</div>
);
}
export default compose(
withSettings(({ organizationSettings }) => ({
baseCurrency: organizationSettings?.baseCurrency,
})),
)(BillFormHeader);
export default compose(withCurrentOrganization())(BillFormHeader);

View File

@@ -12,7 +12,6 @@ import BillsEmptyStatus from './BillsEmptyStatus';
import withBills from './withBills';
import withBillActions from './withBillsActions';
import withSettings from 'containers/Settings/withSettings';
import withAlertsActions from 'containers/Alert/withAlertActions';
import withDialogActions from 'containers/Dialog/withDialogActions';
import withDrawerActions from 'containers/Drawer/withDrawerActions';
@@ -34,7 +33,7 @@ function BillsDataTable({
// #withDialogActions
openDialog,
// #withDrawerActions
openDrawer,
}) {
@@ -88,6 +87,11 @@ function BillsDataTable({
openDrawer('bill-drawer', { billId: id });
};
// Handle cell click.
const handleCellClick = (cell, event) => {
openDrawer('bill-drawer', { billId: cell.row.original.id });
};
if (isEmptyStatus) {
return <BillsEmptyStatus />;
}
@@ -111,6 +115,7 @@ function BillsDataTable({
TableLoadingRenderer={TableSkeletonRows}
TableHeaderSkeletonRenderer={TableSkeletonHeader}
ContextMenu={ActionsMenu}
onCellClick={handleCellClick}
payload={{
onDelete: handleDeleteBill,
onEdit: handleEditBill,
@@ -130,7 +135,4 @@ export default compose(
withAlertsActions,
withDrawerActions,
withDialogActions,
withSettings(({ organizationSettings }) => ({
baseCurrency: organizationSettings?.baseCurrency,
})),
)(BillsDataTable);

View File

@@ -159,6 +159,7 @@ export function useBillsTableColumns() {
accessor: (r) => moment(r.bill_date).format('YYYY MMM DD'),
width: 110,
className: 'bill_date',
clickable: true,
},
{
id: 'vendor',
@@ -166,6 +167,7 @@ export function useBillsTableColumns() {
accessor: 'vendor.display_name',
width: 180,
className: 'vendor',
clickable: true,
},
{
id: 'bill_number',
@@ -173,6 +175,7 @@ export function useBillsTableColumns() {
accessor: (row) => (row.bill_number ? `#${row.bill_number}` : null),
width: 100,
className: 'bill_number',
clickable: true,
},
{
id: 'amount',
@@ -180,6 +183,7 @@ export function useBillsTableColumns() {
accessor: AmountAccessor,
width: 120,
className: 'amount',
clickable: true,
},
{
id: 'status',
@@ -187,6 +191,7 @@ export function useBillsTableColumns() {
accessor: StatusAccessor,
width: 160,
className: 'status',
clickable: true,
},
{
id: 'due_date',
@@ -194,6 +199,7 @@ export function useBillsTableColumns() {
accessor: (r) => moment(r.due_date).format('YYYY MMM DD'),
width: 110,
className: 'due_date',
clickable: true,
},
{
id: 'reference_no',
@@ -201,6 +207,7 @@ export function useBillsTableColumns() {
accessor: 'reference_no',
width: 90,
className: 'reference_no',
clickable: true,
},
],
[],

View File

@@ -15,6 +15,8 @@ import PaymentMadeFormBody from './PaymentMadeFormBody';
import { PaymentMadeInnerProvider } from './PaymentMadeInnerProvider';
import withSettings from 'containers/Settings/withSettings';
import withCurrentOrganization from 'containers/Organization/withCurrentOrganization';
import {
EditPaymentMadeFormSchema,
CreatePaymentMadeFormSchema,
@@ -29,7 +31,9 @@ import { defaultPaymentMade, transformToEditForm, ERRORS } from './utils';
function PaymentMadeForm({
// #withSettings
preferredPaymentAccount,
baseCurrency,
// #withCurrentOrganization
organization: { base_currency },
}) {
const history = useHistory();
@@ -54,7 +58,7 @@ function PaymentMadeForm({
: {
...defaultPaymentMade,
payment_account_id: defaultTo(preferredPaymentAccount),
currency_code: baseCurrency,
currency_code: base_currency,
entries: orderingLinesIndexes(defaultPaymentMade.entries),
}),
}),
@@ -156,10 +160,10 @@ function PaymentMadeForm({
}
export default compose(
withSettings(({ billPaymentSettings, organizationSettings }) => ({
withSettings(({ billPaymentSettings }) => ({
paymentNextNumber: billPaymentSettings?.next_number,
paymentNumberPrefix: billPaymentSettings?.number_prefix,
preferredPaymentAccount: parseInt(billPaymentSettings?.withdrawalAccount),
baseCurrency: organizationSettings?.baseCurrency,
})),
withCurrentOrganization(),
)(PaymentMadeForm);

View File

@@ -8,14 +8,14 @@ import { Money } from 'components';
import { FormattedMessage as T } from 'components';
import PaymentMadeFormHeaderFields from './PaymentMadeFormHeaderFields';
import withSettings from 'containers/Settings/withSettings';
import withCurrentOrganization from 'containers/Organization/withCurrentOrganization';
/**
* Payment made header form.
*/
function PaymentMadeFormHeader({
// #withSettings
baseCurrency,
// #withCurrentOrganization
organization: { base_currency },
}) {
// Formik form context.
const {
@@ -36,7 +36,7 @@ function PaymentMadeFormHeader({
<T id={'amount_received'} />
</span>
<h1 class="big-amount__number">
<Money amount={amountPaid} currency={baseCurrency} />
<Money amount={amountPaid} currency={base_currency} />
</h1>
</div>
</div>
@@ -45,8 +45,4 @@ function PaymentMadeFormHeader({
);
}
export default compose(
withSettings(({ organizationSettings }) => ({
baseCurrency: organizationSettings?.baseCurrency,
})),
)(PaymentMadeFormHeader);
export default compose(withCurrentOrganization())(PaymentMadeFormHeader);

View File

@@ -23,7 +23,7 @@ import {
Icon,
MoneyInputGroup,
} from 'components';
import withSettings from 'containers/Settings/withSettings';
import withCurrentOrganization from 'containers/Organization/withCurrentOrganization';
import { usePaymentMadeFormContext } from './PaymentMadeFormProvider';
import { ACCOUNT_TYPE } from 'common/accountTypes';
import {
@@ -41,7 +41,7 @@ import { accountsFieldShouldUpdate, vendorsFieldShouldUpdate } from './utils';
/**
* Payment made form header fields.
*/
function PaymentMadeFormHeaderFields({ baseCurrency }) {
function PaymentMadeFormHeaderFields({ organization: { base_currency } }) {
// Formik form context.
const {
values: { entries },
@@ -143,7 +143,7 @@ function PaymentMadeFormHeaderFields({ baseCurrency }) {
helperText={<ErrorMessage name="full_amount" />}
>
<ControlGroup>
<InputPrependText text={baseCurrency} />
<InputPrependText text={base_currency} />
<MoneyInputGroup
value={value}
onChange={(value) => {
@@ -160,7 +160,7 @@ function PaymentMadeFormHeaderFields({ baseCurrency }) {
minimal={true}
>
<T id={'receive_full_amount'} /> (
<Money amount={payableFullAmount} currency={baseCurrency} />)
<Money amount={payableFullAmount} currency={base_currency} />)
</Button>
</FormGroup>
)}
@@ -244,8 +244,4 @@ function PaymentMadeFormHeaderFields({ baseCurrency }) {
);
}
export default compose(
withSettings(({ organizationSettings }) => ({
baseCurrency: organizationSettings?.baseCurrency,
})),
)(PaymentMadeFormHeaderFields);
export default compose(withCurrentOrganization())(PaymentMadeFormHeaderFields);

View File

@@ -11,7 +11,8 @@ import TableSkeletonHeader from 'components/Datatable/TableHeaderSkeleton';
import withPaymentMadeActions from './withPaymentMadeActions';
import withPaymentMade from './withPaymentMade';
import withSettings from 'containers/Settings/withSettings';
import withCurrentOrganization from 'containers/Organization/withCurrentOrganization';
import withAlertsActions from 'containers/Alert/withAlertActions';
import withDrawerActions from 'containers/Drawer/withDrawerActions';
import { usePaymentMadesTableColumns, ActionsMenu } from './components';
@@ -63,6 +64,13 @@ function PaymentMadesTable({
openDrawer('payment-made-detail-drawer', { paymentMadeId: id });
};
// Handle cell click.
const handleCellClick = (cell, event) => {
openDrawer('payment-made-detail-drawer', {
paymentMadeId: cell.row.original.id,
});
};
// Handle datatable fetch data once the table state change.
const handleDataTableFetchData = useCallback(
({ pageIndex, pageSize, sortBy }) => {
@@ -97,6 +105,7 @@ function PaymentMadesTable({
TableLoadingRenderer={TableSkeletonRows}
TableHeaderSkeletonRenderer={TableSkeletonHeader}
ContextMenu={ActionsMenu}
onCellClick={handleCellClick}
payload={{
onEdit: handleEditPaymentMade,
onDelete: handleDeletePaymentMade,
@@ -112,7 +121,5 @@ export default compose(
withPaymentMade(({ paymentMadesTableState }) => ({ paymentMadesTableState })),
withAlertsActions,
withDrawerActions,
withSettings(({ organizationSettings }) => ({
baseCurrency: organizationSettings?.baseCurrency,
})),
withCurrentOrganization(),
)(PaymentMadesTable);

View File

@@ -78,6 +78,7 @@ export function usePaymentMadesTableColumns() {
accessor: 'payment_date',
width: 140,
className: 'payment_date',
clickable: true,
},
{
id: 'vendor',
@@ -85,6 +86,7 @@ export function usePaymentMadesTableColumns() {
accessor: 'vendor.display_name',
width: 140,
className: 'vendor_id',
clickable: true,
},
{
id: 'payment_number',
@@ -93,6 +95,7 @@ export function usePaymentMadesTableColumns() {
row.payment_number ? `#${row.payment_number}` : null,
width: 140,
className: 'payment_number',
clickable: true,
},
{
id: 'payment_account',
@@ -100,6 +103,7 @@ export function usePaymentMadesTableColumns() {
accessor: 'payment_account.name',
width: 140,
className: 'payment_account_id',
clickable: true,
},
{
id: 'amount',
@@ -107,6 +111,7 @@ export function usePaymentMadesTableColumns() {
accessor: AmountAccessor,
width: 140,
className: 'amount',
clickable: true,
},
{
id: 'reference_no',
@@ -114,6 +119,7 @@ export function usePaymentMadesTableColumns() {
accessor: 'reference',
width: 140,
className: 'reference',
clickable: true,
},
],
[],