import Spinner from '@/core/components/elements/Spinner/Spinner'; import useInvoice from '../hooks/useInvoice'; import { downloadInvoice, downloadTaxInvoice } from '../utils/invoices'; import Divider from '@/core/components/elements/Divider/Divider'; import VariantGroupCard from '@/lib/variant/components/VariantGroupCard'; import currencyFormat from '@/core/utils/currencyFormat'; import MobileView from '@/core/components/views/MobileView'; import DesktopView from '@/core/components/views/DesktopView'; import Menu from '@/lib/auth/components/Menu'; import Link from '@/core/components/elements/Link/Link'; import Image from '@/core/components/elements/Image/Image'; import { createSlug } from '@/core/utils/slug'; import { useEffect, useState } from 'react'; const Invoice = ({ id }) => { const PPN = process.env.NEXT_PUBLIC_PPN; const { invoice } = useInvoice({ id }); const [totalAmount, setTotalAmount] = useState(0); const [totalDiscountAmount, setTotalDiscountAmount] = useState(0); const amountBeforePPN = invoice.data?.amountTotal / PPN; const taxAmount = invoice.data?.amountTotal - amountBeforePPN; useEffect(() => { if (invoice?.data?.products) { let calculateTotalAmount = 0; let calculateTotalDiscountAmount = 0; invoice.data.products.forEach((product) => { calculateTotalAmount += product.price.price * product.quantity; calculateTotalDiscountAmount += (product.price.price - product.price.priceDiscount) * product.quantity; }); setTotalAmount(calculateTotalAmount); setTotalDiscountAmount(calculateTotalDiscountAmount); } }, [invoice]); if (invoice.isLoading) { return (
Invoice
Faktur Pajak
Total Belanja
{currencyFormat(invoice.data?.amountTotal)}
| Nama Produk | Jumlah | Harga | {/*Diskon | */}Subtotal |
|---|---|---|---|---|
|
{product?.parent?.name}
{product?.code}{' '}
{product?.attributes.length > 0
? `| ${product?.attributes.join(', ')}`
: ''}
|
{product.quantity} | {currencyFormat( product.price.priceDiscount - taxAmount )} | {/*{product.price.discountPercentage > 0 ? `${product.price.discountPercentage}%` : ''} | */}{currencyFormat( product.price.priceDiscount * product.quantity - taxAmount )} |