// import { fetchInvoiceCategories, fetchInvoices } from "@/app/api/companys"; import React from "react"; import InvoiceSearch from "./InvoiceSearch"; import InvoiceSearchLoading from "./InvoiceSearchLoading"; import { fetchInvoicesV3, fetchIssuedInvoices, fetchReceivedInvoices, issuedInvoiceList, issuedInvoiceResult } from "@/app/api/invoices"; import { INPUT_DATE_FORMAT, convertDateArrayToString, convertDateToString, moneyFormatter, timestampToDateString } from "@/app/utils/formatUtil"; interface SubComponents { Loading: typeof InvoiceSearchLoading; } // function calculateHourlyRate(loweLimit: number, upperLimit: number, numOfWorkingDay: number, workingHour: number){ // const hourlyRate = (loweLimit + upperLimit)/2/numOfWorkingDay/workingHour // return hourlyRate.toLocaleString() // } const InvoiceSearchWrapper: React.FC & SubComponents = async () => { const issuedInvoices = await fetchIssuedInvoices() const receivedInvoices = await fetchReceivedInvoices() const invoices = await fetchInvoicesV3() // console.log(invoices) const convertedIssedInvoices = issuedInvoices.map((invoice)=>{ return{ id: invoice.id, invoiceNo: invoice.invoiceNo, projectCode: invoice.projectCode, projectName: invoice.projectName, stage: invoice.stage, paymentMilestone: invoice.paymentMilestone, invoiceDate: convertDateArrayToString(invoice.invoiceDate, INPUT_DATE_FORMAT, false)!!, dueDate: convertDateArrayToString(invoice.dueDate, INPUT_DATE_FORMAT, false)!!, issuedAmount: moneyFormatter.format(invoice.issuedAmount) } }) const convertedReceivedInvoices = receivedInvoices.map((invoice)=>{ return{ id: invoice.id, invoiceNo: invoice.invoiceNo, projectCode: invoice.projectCode, projectName: invoice.projectName, team: invoice.team, receiptDate: convertDateArrayToString(invoice.receiptDate, INPUT_DATE_FORMAT, false)!!, receivedAmount: moneyFormatter.format(invoice.receivedAmount) } }) const convertedInvoices = invoices.map((invoice)=>{ return{ id: invoice.id, invoiceNo: invoice.invoiceNo, projectCode: invoice.projectCode, projectName: invoice.projectName, team: invoice.team, issuedDate: timestampToDateString(invoice.invoiceDate)!!, receiptDate: timestampToDateString(invoice.receiptDate??null)!!, issuedAmount: moneyFormatter.format(invoice.issueAmount), receivedAmount: invoice.paidAmount === null ? "-" : moneyFormatter.format(invoice.paidAmount) } }) return }; InvoiceSearchWrapper.Loading = InvoiceSearchLoading; export default InvoiceSearchWrapper;