feat: wip UI upload attachments

This commit is contained in:
Ahmed Bouhuolia
2024-05-28 23:34:51 +02:00
parent fcd61c6159
commit cfdbcea9c0
49 changed files with 286 additions and 67 deletions

View File

@@ -7,6 +7,7 @@ import { CLASSES } from '@/constants/classes';
import { Paper, Row, Col } from '@/components';
import { BillFormFooterLeft } from './BillFormFooterLeft';
import { BillFormFooterRight } from './BillFormFooterRight';
import { UploadAttachmentButton } from '@/containers/Attachments/UploadAttachmentButton';
// Bill form floating actions.
export default function BillFormFooter() {
@@ -16,6 +17,7 @@ export default function BillFormFooter() {
<Row>
<Col md={8}>
<BillFormFooterLeft />
<UploadAttachmentButton />
</Col>
<Col md={4}>

View File

@@ -27,6 +27,10 @@ import {
} from '@/containers/Entries/utils';
import { useBillFormContext } from './BillFormProvider';
import { TaxType } from '@/interfaces/TaxRates';
import {
transformAttachmentsToForm,
transformAttachmentsToRequest,
} from '@/containers/Attachments/utils';
export const MIN_LINES_NUMBER = 1;
@@ -60,6 +64,7 @@ export const defaultBill = {
exchange_rate: 1,
currency_code: '',
entries: [...repeatValue(defaultBillEntry, MIN_LINES_NUMBER)],
attachments: [],
};
export const ERRORS = {
@@ -88,12 +93,15 @@ export const transformToEditForm = (bill) => {
updateItemsEntriesTotal,
)(initialEntries);
const attachments = transformAttachmentsToForm(bill);
return {
...transformToForm(bill, defaultBill),
inclusive_exclusive_tax: bill.is_inclusive_tax
? TaxType.Inclusive
: TaxType.Exclusive,
entries,
attachments,
};
};
@@ -120,11 +128,13 @@ export const filterNonZeroEntries = (entries) => {
*/
export const transformFormValuesToRequest = (values) => {
const entries = filterNonZeroEntries(values.entries);
const attachments = transformAttachmentsToRequest(values);
return {
...values,
entries: transformEntriesToSubmit(entries),
open: false,
attachments,
};
};

View File

@@ -7,6 +7,7 @@ import { CLASSES } from '@/constants/classes';
import { Row, Col, Paper } from '@/components';
import { VendorCreditNoteFormFooterLeft } from './VendorCreditNoteFormFooterLeft';
import { VendorCreditNoteFormFooterRight } from './VendorCreditNoteFormFooterRight';
import { UploadAttachmentButton } from '@/containers/Attachments/UploadAttachmentButton';
/**
* Vendor Credit note form footer.
@@ -18,6 +19,7 @@ export default function VendorCreditNoteFormFooter() {
<Row>
<Col md={8}>
<VendorCreditNoteFormFooterLeft />
<UploadAttachmentButton />
</Col>
<Col md={4}>

View File

@@ -20,6 +20,10 @@ import { useFormikContext } from 'formik';
import { useVendorCreditNoteFormContext } from './VendorCreditNoteFormProvider';
import { useCurrentOrganization } from '@/hooks/state';
import { getEntriesTotal } from '@/containers/Entries/utils';
import {
transformAttachmentsToForm,
transformAttachmentsToRequest,
} from '@/containers/Attachments/utils';
export const MIN_LINES_NUMBER = 1;
@@ -48,6 +52,7 @@ export const defaultVendorsCreditNote = {
exchange_rate: 1,
currency_code: '',
entries: [...repeatValue(defaultCreditNoteEntry, MIN_LINES_NUMBER)],
attachments: [],
};
/**
@@ -68,9 +73,12 @@ export const transformToEditForm = (creditNote) => {
updateItemsEntriesTotal,
)(initialEntries);
const attachments = transformAttachmentsToForm(creditNote);
return {
...transformToForm(creditNote, defaultVendorsCreditNote),
entries,
attachments,
};
};
@@ -100,11 +108,13 @@ export const filterNonZeroEntries = (entries) => {
*/
export const transformFormValuesToRequest = (values) => {
const entries = filterNonZeroEntries(values.entries);
const attachments = transformAttachmentsToRequest(values);
return {
...values,
entries: transformEntriesToSubmit(entries),
open: false,
attachments,
};
};

View File

@@ -7,6 +7,7 @@ import { CLASSES } from '@/constants/classes';
import { Row, Col, Paper } from '@/components';
import { PaymentMadeFormFooterLeft } from './PaymentMadeFormFooterLeft';
import { PaymentMadeFormFooterRight } from './PaymentMadeFormFooterRight';
import { UploadAttachmentButton } from '@/containers/Attachments/UploadAttachmentButton';
/**
* Payment made form footer.
@@ -18,6 +19,7 @@ export default function PaymentMadeFooter() {
<Row>
<Col md={8}>
<PaymentMadeFormFooterLeft />
<UploadAttachmentButton />
</Col>
<Col md={4}>

View File

@@ -16,6 +16,10 @@ import {
} from '@/utils';
import { useCurrentOrganization } from '@/hooks/state';
import { PAYMENT_MADE_ERRORS } from '../constants';
import {
transformAttachmentsToForm,
transformAttachmentsToRequest,
} from '@/containers/Attachments/utils';
export const ERRORS = {
PAYMENT_NUMBER_NOT_UNIQUE: 'PAYMENT.NUMBER.NOT.UNIQUE',
@@ -44,9 +48,12 @@ export const defaultPaymentMade = {
branch_id: '',
exchange_rate: 1,
entries: [],
attachments: [],
};
export const transformToEditForm = (paymentMade, paymentMadeEntries) => {
const attachments = transformAttachmentsToForm(paymentMade);
return {
...transformToForm(paymentMade, defaultPaymentMade),
full_amount: safeSumBy(paymentMadeEntries, 'payment_amount'),
@@ -56,6 +63,7 @@ export const transformToEditForm = (paymentMade, paymentMadeEntries) => {
payment_amount: paymentMadeEntry.payment_amount || '',
})),
],
attachments,
};
};
@@ -101,7 +109,9 @@ export const transformFormToRequest = (form) => {
...pick(entry, ['payment_amount', 'bill_id']),
}));
return { ...form, entries: orderingLinesIndexes(entries) };
const attachments = transformAttachmentsToRequest(form);
return { ...form, entries: orderingLinesIndexes(entries), attachments };
};
export const useSetPrimaryBranchToForm = () => {