diff --git a/src/app/api/projectExpenses/actions.ts b/src/app/api/projectExpenses/actions.ts index 87dc28b..d8e3f09 100644 --- a/src/app/api/projectExpenses/actions.ts +++ b/src/app/api/projectExpenses/actions.ts @@ -24,3 +24,12 @@ export type PostExpenseData = { receiptDate?: string remarks?: string } +export const saveProjectExpense = async (data: PostExpenseData[]) => { + const response = await serverFetchJson(`${BASE_API_URL}/project-expense/create`, { + method: "POST", + body: JSON.stringify(data), + headers: { "Content-Type": "application/json" }, + }); + revalidateTag("projectExpenses"); + return response; +} \ No newline at end of file diff --git a/src/app/api/staff/actions.ts b/src/app/api/staff/actions.ts index 26541dd..9f22094 100644 --- a/src/app/api/staff/actions.ts +++ b/src/app/api/staff/actions.ts @@ -86,14 +86,6 @@ export const saveStaff = async (data: CreateStaffInputs) => { console.log(newStaffList) revalidateTag("staffs"); return newStaffList - - // } catch (e: any) { - // console.log(e.response) - // throw new ServerFetchError( - // "Something went wrong fetching data in serverssssss.", - // e.response, - // ); - // } }; diff --git a/src/components/ExpenseSearch/CreateExpenseModal.tsx b/src/components/ExpenseSearch/CreateExpenseModal.tsx index a1d69b5..a8b094d 100644 --- a/src/components/ExpenseSearch/CreateExpenseModal.tsx +++ b/src/components/ExpenseSearch/CreateExpenseModal.tsx @@ -16,10 +16,13 @@ import { ProjectResult } from "@/app/api/projects"; import { CreateNewExpense, PostExpenseData, + saveProjectExpense, } from "@/app/api/projectExpenses/actions"; import ExpenseTable from "./ExpenseTable"; import dayjs from "dayjs"; import { INPUT_DATE_FORMAT } from "@/app/utils/formatUtil"; +import { submitDialog, successDialog } from "../Swal/CustomAlerts"; +import { useRouter } from 'next/navigation'; interface Props { isOpen: boolean; @@ -44,6 +47,7 @@ type postData = { const CreateExpenseModal: React.FC = ({ isOpen, onClose, projects }) => { const { t } = useTranslation(); const formProps = useForm(); + const router = useRouter(); const onSubmit = useCallback>((data) => { const _data = data.data; @@ -60,6 +64,17 @@ const CreateExpenseModal: React.FC = ({ isOpen, onClose, projects }) => { }; }); console.log(postData); + submitDialog(async () => { + const response = await saveProjectExpense(postData) + console.log(response) + if (response) { + onClose() + successDialog(t("Submit Success"), t).then(() => { + router.replace("/expense"); + }) + } + }, t) + } catch (error) { console.log(error); } diff --git a/src/components/ExpenseSearch/ExpenseSearchWrapper.tsx b/src/components/ExpenseSearch/ExpenseSearchWrapper.tsx index da40d61..61ba09b 100644 --- a/src/components/ExpenseSearch/ExpenseSearchWrapper.tsx +++ b/src/components/ExpenseSearch/ExpenseSearchWrapper.tsx @@ -28,15 +28,17 @@ const ExpenseSearchWrapper: React.FC & SubComponents = async () => { let filteredExpenses = expenses if (teamId) { filteredExpenses = expenses.filter(e => e.teamId === teamId) - } else { - filteredExpenses = [] - } + } + // else { + // filteredExpenses = [] + // } const _expenses = filteredExpenses.map((e) => { - const issueDate = e.issueDate; - const receiptDate = e.receiptDate; - const formattedIssueDate = dayjs([issueDate[0], issueDate[1], issueDate[2]].join()).format(OUTPUT_DATE_FORMAT) - const formattedReceiptDate = dayjs([receiptDate[0], receiptDate[1], receiptDate[2]].join()).format(OUTPUT_DATE_FORMAT) + const formattedIssueDate = dayjs([e.issueDate[0], e.issueDate[1], e.issueDate[2]].join()).format(OUTPUT_DATE_FORMAT) + let formattedReceiptDate = "" + if (e.receiptDate) { + formattedReceiptDate = dayjs([e.receiptDate[0], e.receiptDate[1], e.receiptDate[2]].join()).format(OUTPUT_DATE_FORMAT) + } return ({ ...e, issueDate: formattedIssueDate,