import type { IInvoiceItem } from 'src/types/invoice'; import { useState, useCallback } from 'react'; import Box from '@mui/material/Box'; import Card from '@mui/material/Card'; import Table from '@mui/material/Table'; import Stack from '@mui/material/Stack'; import Divider from '@mui/material/Divider'; import TableRow from '@mui/material/TableRow'; import TableHead from '@mui/material/TableHead'; import TableBody from '@mui/material/TableBody'; import TableCell from '@mui/material/TableCell'; import Typography from '@mui/material/Typography'; import { fDate } from 'src/utils/format-time'; import { fCurrency } from 'src/utils/format-number'; import { INVOICE_STATUS_OPTIONS } from 'src/_mock'; import { Label } from 'src/components/label'; import { Scrollbar } from 'src/components/scrollbar'; import { InvoiceToolbar } from './invoice-toolbar'; import { InvoiceTotalSummary } from './invoice-total-summary'; import { useTranslation } from 'react-i18next'; import { changeStatus } from 'src/actions/invoice'; import { toast } from 'src/components/snackbar'; // ---------------------------------------------------------------------- type Props = { invoice: IInvoiceItem; }; export function InvoiceDetails({ invoice }: Props) { const { t } = useTranslation(); const [currentStatus, setCurrentStatus] = useState(invoice?.status); const handleChangeStatus = useCallback( (event: React.ChangeEvent) => { // setCurrentStatus(event.target.value); try { changeStatus(invoice.id, event.target.value); setCurrentStatus(event.target.value); toast.success('status changed!'); } catch (error) { console.error(error); toast.warning('error during changing status'); } }, [] ); const renderFooter = () => (
NOTES We appreciate your business. Should you need us to add VAT or extra notes let us know!
Have a question? support@minimals.cc
); const renderList = () => ( # Description Qty Unit price Total {invoice?.items.map((row, index) => ( {index + 1} {row.title} {row.description} {row.quantity} {fCurrency(row.price)} {fCurrency(row.price * row.quantity)} ))}
); return ( <> {invoice?.invoiceNumber} Invoice from {invoice?.invoiceFrom.name}
{invoice?.invoiceFrom.fullAddress}
Phone: {invoice?.invoiceFrom.phoneNumber}
Invoice to {invoice?.invoiceTo.name}
{invoice?.invoiceTo.fullAddress}
Phone: {invoice?.invoiceTo.phoneNumber}
Date create {fDate(invoice?.createDate)} Due date {fDate(invoice?.dueDate)}
{renderList()} {renderFooter()}
); }