diff --git a/src/app/api/invoices/actions.ts b/src/app/api/invoices/actions.ts index 8e7fdbc..d98c5e8 100644 --- a/src/app/api/invoices/actions.ts +++ b/src/app/api/invoices/actions.ts @@ -164,7 +164,7 @@ export const deleteInvoice = async (id: number) => { }; export const createInvoices = async (data: any) => { - console.log(data) + // console.log(data) const createInvoices = serverFetchString(`${BASE_API_URL}/invoices/create`, { method: "Post", body: JSON.stringify(data), diff --git a/src/app/api/projectExpenses/actions.ts b/src/app/api/projectExpenses/actions.ts index 9832824..a733a9c 100644 --- a/src/app/api/projectExpenses/actions.ts +++ b/src/app/api/projectExpenses/actions.ts @@ -9,19 +9,19 @@ import { revalidateTag } from "next/cache"; export type CreateNewExpense = { expenseNo: string | undefined, projectCode: string | undefined, - issueDate: Date + issueDate: Date, issuedAmount: number, - receiptDate: Date + receiptDate: Date, receivedAmount: number } export type PostExpenseData = { - expenseNo?: string - projectId: number + expenseNo?: string, + projectId: number, projectCode: string, - amount: number - issueDate?: string - receiptDate?: string + amount: number, + issueDate?: string | null, + receiptDate?: string, remarks?: string } export const saveProjectExpense = async (data: PostExpenseData[]) => { diff --git a/src/components/ExpenseSearch/CreateExpenseModal.tsx b/src/components/ExpenseSearch/CreateExpenseModal.tsx index 88976a6..51bfcf2 100644 --- a/src/components/ExpenseSearch/CreateExpenseModal.tsx +++ b/src/components/ExpenseSearch/CreateExpenseModal.tsx @@ -55,7 +55,7 @@ const CreateExpenseModal: React.FC = ({ isOpen, onClose, projects }) => { const postData: PostExpenseData[] = _data.map((item) => { return { expenseNo: item.expenseNo, - // issueDate: item.issueDate ? dayjs(item.issueDate).format(INPUT_DATE_FORMAT) : null, + issueDate: item.issueDate ? dayjs(item.issueDate).format(INPUT_DATE_FORMAT) : null, amount: item.amount, projectId: projects.find((p) => p.code === item.projectCode)!.id, projectCode: item.projectCode, diff --git a/src/components/ExpenseSearch/ExpenseSearch.tsx b/src/components/ExpenseSearch/ExpenseSearch.tsx index a741e67..69e08d5 100644 --- a/src/components/ExpenseSearch/ExpenseSearch.tsx +++ b/src/components/ExpenseSearch/ExpenseSearch.tsx @@ -20,7 +20,7 @@ import { Stack, Typography, } from "@mui/material"; -import { moneyFormatter } from "@/app/utils/formatUtil"; +import { INPUT_DATE_FORMAT, moneyFormatter } from "@/app/utils/formatUtil"; import { EditNote } from "@mui/icons-material"; import AddIcon from '@mui/icons-material/Add'; import { uniq } from "lodash"; @@ -32,6 +32,7 @@ import { useGridApiRef } from "@mui/x-data-grid"; import { GridEventListener } from "@mui/x-data-grid"; import { deleteDialog, successDialog } from "../Swal/CustomAlerts"; import { deleteProjectExpense, updateProjectExpense } from "@/app/api/projectExpenses/actions"; +import dayjs from "dayjs"; interface Props { expenses: ProjectExpensesResultFormatted[] @@ -51,6 +52,7 @@ const initState: Modals = { type expenseRow = Partial< ProjectExpensesResultFormatted & { _error: ExpenseRowError; + issuedDate: Date } > @@ -97,9 +99,9 @@ const ExpenseSearch: React.FC = ({ expenses, projects }) => { }, { name: "projectCode", label: t("Project Code") }, { name: "projectName", label: t("Project Name") }, - { name: "amount", label: t("Amount") }, + { name: "amount", label: t("Amount (HKD)"), type: 'money', needTranslation: true}, { name: "teamCode", label: t("Team") }, - // { name: "issueDate", label: t("Issue Date") }, + { name: "issueDate", label: t("Issue Date") }, { name: "remarks", label: t("Remarks")} ], [t] @@ -144,7 +146,9 @@ const ExpenseSearch: React.FC = ({ expenses, projects }) => { const handleSaveDialog = async () => { // setDialogOpen(false); - console.log(selectedRow[0]) + // console.log(selectedRow[0]) + selectedRow[0].issueDate = dayjs(selectedRow[0].issuedDate).format(INPUT_DATE_FORMAT) + console.log(selectedRow[0]) await updateProjectExpense(selectedRow[0]) setDialogOpen(false); successDialog(t("Update Success"), t).then(() => { @@ -231,6 +235,16 @@ const ExpenseSearch: React.FC = ({ expenses, projects }) => { flex: 0.5, type: 'number' }, + { field: "issuedDate", + headerName: t("Issue Date"), + editable: true, + flex: 0.4, + type: 'date', + valueGetter: (params) => { + // console.log(params.row.issuedDate) + return new Date(params.row.issuedDate) + }, + }, { field: "remarks", headerName: t("Remarks"), diff --git a/src/components/ExpenseSearch/ExpenseSearchWrapper.tsx b/src/components/ExpenseSearch/ExpenseSearchWrapper.tsx index 61ba09b..79236b4 100644 --- a/src/components/ExpenseSearch/ExpenseSearchWrapper.tsx +++ b/src/components/ExpenseSearch/ExpenseSearchWrapper.tsx @@ -41,6 +41,7 @@ const ExpenseSearchWrapper: React.FC & SubComponents = async () => { } return ({ ...e, + issuedDate: e.issueDate, issueDate: formattedIssueDate, receiptDate: formattedReceiptDate }) diff --git a/src/components/ExpenseSearch/ExpenseTable.tsx b/src/components/ExpenseSearch/ExpenseTable.tsx index 2d441e9..920d6e3 100644 --- a/src/components/ExpenseSearch/ExpenseTable.tsx +++ b/src/components/ExpenseSearch/ExpenseTable.tsx @@ -271,13 +271,13 @@ const editCombinedColumns = useMemo( renderCell: renderAutocomplete, renderEditCell: renderAutocompleteInput }, - // { - // field: "issueDate", - // headerName: t("Issue Date"), - // editable: true, - // flex: 0.4, - // type: 'date', - // }, + { + field: "issueDate", + headerName: t("Issue Date"), + editable: true, + flex: 0.4, + type: 'date', + }, { field: "amount", headerName: t("Amount (HKD)"),