refactoring(paperTemplate): connect data.

This commit is contained in:
elforjani3
2021-03-06 20:20:59 +02:00
parent c245f4249d
commit be0c53d18a
9 changed files with 221 additions and 190 deletions

View File

@@ -1,26 +1,44 @@
import React from 'react';
import PaymentPaperTemplateHeader from './PaymentPaperTemplateHeader';
import PaymentPaperTemplateTable from './PaymentPaperTemplateTable';
import 'style/components/Drawer/DrawerTemplate.scss';
export default function PaymentPaperTemplate({ labels: propLabels }) {
export default function PaymentPaperTemplate({
labels: propLabels,
paperData,
}) {
const labels = {
title: 'Payment receive',
name: 'Payment receive',
billedTo: 'Billed to',
paymentDate: 'Payment date',
paymentNo: 'Payment No.',
date: 'Payment date',
refNo: 'Payment No.',
billedFrom: 'Billed from',
referenceNo: 'Reference No',
amountReceived: 'Amount received',
amount: 'Amount received',
dueDate: 'Due date',
...propLabels,
};
const defaultValues = {
billedTo: paperData.customer.display_name,
date: paperData.payment_date,
amount: '',
billedFrom: '',
referenceNo: paperData.payment_receive_no,
...paperData,
};
return (
<div id={'page-size'}>
<div className={'template'}>
<PaymentPaperTemplateHeader defaultLabels={labels} />
<PaymentPaperTemplateTable />
</div>
{[defaultValues].map(({ entries, ...defaultValues }) => (
<div className={'template'}>
<PaymentPaperTemplateHeader
defaultLabels={labels}
headerData={defaultValues}
/>
<PaymentPaperTemplateTable tableData={entries} />
</div>
))}
</div>
);
}

View File

@@ -1,43 +1,21 @@
import React from 'react';
import { Icon } from 'components';
import { TemplateHeader, TemplateContent } from '../components';
export default function PaymentPaperTemplateHeader({ defaultLabels }) {
export default function PaymentPaperTemplateHeader({
defaultLabels,
headerData: { referenceNo, amount, date, billedTo },
}) {
return (
<>
<div className={'template__header'}>
<div className={'template__header--title'}>
<h1>{defaultLabels.title}</h1>
<p>info@bigcapital.ly </p>
</div>
<Icon icon="bigcapital" height={30} width={200} />
</div>
<div className="template__content">
<div className="template__content__info">
<span> {defaultLabels.billedTo} </span>
<p className={'info-paragraph'}>Step Currency</p>
</div>
<div className="template__content__info">
<span> {defaultLabels.paymentDate} </span>
<p className={'info-paragraph'}>1/1/2022</p>
</div>
<div className="template__content__info">
<span> {defaultLabels.paymentNo} </span>
<p className={'info-paragraph'}>IN-2022</p>
</div>
<div className="template__content__info">
<span> {defaultLabels.amountReceived} </span>
<p className={'info-paragraph-amount'}>60,000 USD</p>
</div>
<div className="template__content__info">
<span> {defaultLabels.billedFrom} </span>
<p className={'info-paragraph'}> Klay Thompson</p>
</div>
<div className="template__content__info">
<span> {defaultLabels.referenceNo} </span>
<p className={'info-paragraph'}></p>
</div>
</div>
<TemplateHeader defaultLabels={defaultLabels} />
<TemplateContent
defaultLabels={defaultLabels}
billedTo={billedTo}
date={date}
referenceNo={referenceNo}
amount={amount}
billedFrom={''}
/>
</>
);
}

View File

@@ -1,51 +1,42 @@
import React from 'react';
import moment from 'moment';
import { formatMessage } from 'services/intl';
import { DataTable, Money } from 'components';
export default function PaymentPaperTemplateTable() {
export default function PaymentPaperTemplateTable({ tableData }) {
const columns = React.useMemo(
() => [
{
Header: formatMessage({ id: 'invoice_number' }),
accessor: 'invoice.invoice_no',
disableSortBy: true,
},
{
Header: formatMessage({ id: 'invoice_date' }),
accessor: ({ invoice_date }) =>
moment(invoice_date).format('YYYY MMM DD'),
disableSortBy: true,
},
{
Header: formatMessage({ id: 'invoice_amount' }),
accessor: ({ invoice }) => (
<Money amount={invoice.balance} currency={'USD'} />
),
disableSortBy: true,
},
{
Header: formatMessage({ id: 'payment_amount' }),
accessor: ({ payment_amount }) => (
<Money amount={payment_amount} currency={'USD'} />
),
disableSortBy: true,
},
],
[],
);
return (
<div className="template__table">
<div className="template__table__rows">
<span className="template__table__rows--cell-payment-receive ">
Invoice number
</span>
<span className="template__table__rows--cell-payment-receive ">
Invoice date
</span>
<span className="template__table__rows--cell-payment-receive ">
Invoice amount
</span>
<span className="template__table__rows--cell-payment-receive ">
Payment amount
</span>
</div>
<div className="template__table__rows">
<span className="template__table__rows--cell-payment-receive">
INV-1
</span>
<span className="template__table__rows--cell-payment-receive">
12 Jan 2021
</span>
<span className="template__table__rows--cell-payment-receive">
50,000 USD
</span>
<span className="template__table__rows--cell-payment-receive">
1000 USD
</span>
</div>
<div className="template__table__rows">
<span className="template__table__rows--cell-payment-receive">
INV-2
</span>
<span className="template__table__rows--cell-payment-receive">
12 Jan 2021
</span>
<span className="template__table__rows--cell-payment-receive">
50,000 USD
</span>
<span className="template__table__rows--cell-payment-receive">
1000 USD
</span>
</div>
<DataTable columns={columns} data={tableData} />
</div>
);
}