feat: receipt detail footer.

This commit is contained in:
elforjani13
2021-12-26 13:26:10 +02:00
parent a075b998d3
commit 8ea92513fe
3 changed files with 76 additions and 39 deletions

View File

@@ -1,51 +1,35 @@
import React from 'react';
import styled from 'styled-components';
import {
CommercialDocFooter,
T,
TotalLines,
TotalLine,
TotalLineBorderStyle,
TotalLineTextStyle,
FormatNumber,
If,
DetailsMenu,
DetailItem,
} from 'components';
import { useReceiptDetailDrawerContext } from './ReceiptDetailDrawerProvider';
/**
* Receipts read-only details footer.
* Receipt details footer
* @returns {React.JSX}
*/
export function ReceiptDetailFooter() {
export default function ReceiptDetailFooter() {
const { receipt } = useReceiptDetailDrawerContext();
return (
<ReceiptDetailsFooterRoot>
<ReceiptTotalLines labelColWidth={'180px'} amountColWidth={'180px'}>
<TotalLine
title={<T id={'receipt.details.subtotal'} />}
value={<FormatNumber value={receipt.amount} />}
/>
<TotalLine
title={<T id={'receipt.details.total'} />}
value={receipt.formatted_amount}
borderStyle={TotalLineBorderStyle.DoubleDark}
textStyle={TotalLineTextStyle.Bold}
/>
<TotalLine
title={<T id={'receipt.details.payment_amount'} />}
value={receipt.formatted_amount}
borderStyle={TotalLineBorderStyle.DoubleDark}
/>
<TotalLine
title={<T id={'receipt.details.due_amount'} />}
value={'0'}
/>
</ReceiptTotalLines>
</ReceiptDetailsFooterRoot>
<CommercialDocFooter>
<DetailsMenu direction={'horizantal'} minLabelSize={'180px'}>
<If condition={receipt.statement}>
<DetailItem label={<T id={'receipt.details.statement'} />}>
{receipt.statement}
</DetailItem>
</If>
<If condition={receipt.receipt_message}>
<DetailItem label={<T id={'receipt.details.receipt_message'} />}>
{receipt.receipt_message}
</DetailItem>
</If>
</DetailsMenu>
</CommercialDocFooter>
);
}
export const ReceiptDetailsFooterRoot = styled.div``;
export const ReceiptTotalLines = styled(TotalLines)`
margin-left: auto;
`;

View File

@@ -5,7 +5,8 @@ import { CommercialDocBox } from 'components';
import ReceiptDetailHeader from './ReceiptDetailHeader';
import ReceiptDetailTable from './ReceiptDetailTable';
import { ReceiptDetailFooter } from './ReceiptDetailFooter';
import ReceiptDetailTableFooter from './ReceiptDetailTableFooter';
import ReceiptDetailFooter from './ReceiptDetailFooter';
export default function ReceiptDetailTab() {
return (
@@ -13,6 +14,7 @@ export default function ReceiptDetailTab() {
<CommercialDocBox>
<ReceiptDetailHeader />
<ReceiptDetailTable />
<ReceiptDetailTableFooter />
<ReceiptDetailFooter />
</CommercialDocBox>
</ReceiptDetailsOverviewRoot>

View File

@@ -0,0 +1,51 @@
import React from 'react';
import styled from 'styled-components';
import {
T,
TotalLines,
TotalLine,
TotalLineBorderStyle,
TotalLineTextStyle,
FormatNumber,
} from 'components';
import { useReceiptDetailDrawerContext } from './ReceiptDetailDrawerProvider';
/**
* Receipts read-only details table footer.
*/
export default function ReceiptDetailTableFooter() {
const { receipt } = useReceiptDetailDrawerContext();
return (
<ReceiptDetailsFooterRoot>
<ReceiptTotalLines labelColWidth={'180px'} amountColWidth={'180px'}>
<TotalLine
title={<T id={'receipt.details.subtotal'} />}
value={<FormatNumber value={receipt.amount} />}
/>
<TotalLine
title={<T id={'receipt.details.total'} />}
value={receipt.formatted_amount}
borderStyle={TotalLineBorderStyle.DoubleDark}
textStyle={TotalLineTextStyle.Bold}
/>
<TotalLine
title={<T id={'receipt.details.payment_amount'} />}
value={receipt.formatted_amount}
borderStyle={TotalLineBorderStyle.DoubleDark}
/>
<TotalLine
title={<T id={'receipt.details.due_amount'} />}
value={'0'}
/>
</ReceiptTotalLines>
</ReceiptDetailsFooterRoot>
);
}
export const ReceiptDetailsFooterRoot = styled.div``;
export const ReceiptTotalLines = styled(TotalLines)`
margin-left: auto;
`;