@@ -24,3 +24,12 @@ export type PostExpenseData = { | |||||
receiptDate?: string | receiptDate?: string | ||||
remarks?: 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; | |||||
} |
@@ -86,14 +86,6 @@ export const saveStaff = async (data: CreateStaffInputs) => { | |||||
console.log(newStaffList) | console.log(newStaffList) | ||||
revalidateTag("staffs"); | revalidateTag("staffs"); | ||||
return newStaffList | return newStaffList | ||||
// } catch (e: any) { | |||||
// console.log(e.response) | |||||
// throw new ServerFetchError( | |||||
// "Something went wrong fetching data in serverssssss.", | |||||
// e.response, | |||||
// ); | |||||
// } | |||||
}; | }; | ||||
@@ -16,10 +16,13 @@ import { ProjectResult } from "@/app/api/projects"; | |||||
import { | import { | ||||
CreateNewExpense, | CreateNewExpense, | ||||
PostExpenseData, | PostExpenseData, | ||||
saveProjectExpense, | |||||
} from "@/app/api/projectExpenses/actions"; | } from "@/app/api/projectExpenses/actions"; | ||||
import ExpenseTable from "./ExpenseTable"; | import ExpenseTable from "./ExpenseTable"; | ||||
import dayjs from "dayjs"; | import dayjs from "dayjs"; | ||||
import { INPUT_DATE_FORMAT } from "@/app/utils/formatUtil"; | import { INPUT_DATE_FORMAT } from "@/app/utils/formatUtil"; | ||||
import { submitDialog, successDialog } from "../Swal/CustomAlerts"; | |||||
import { useRouter } from 'next/navigation'; | |||||
interface Props { | interface Props { | ||||
isOpen: boolean; | isOpen: boolean; | ||||
@@ -44,6 +47,7 @@ type postData = { | |||||
const CreateExpenseModal: React.FC<Props> = ({ isOpen, onClose, projects }) => { | const CreateExpenseModal: React.FC<Props> = ({ isOpen, onClose, projects }) => { | ||||
const { t } = useTranslation(); | const { t } = useTranslation(); | ||||
const formProps = useForm<postData>(); | const formProps = useForm<postData>(); | ||||
const router = useRouter(); | |||||
const onSubmit = useCallback<SubmitHandler<postData>>((data) => { | const onSubmit = useCallback<SubmitHandler<postData>>((data) => { | ||||
const _data = data.data; | const _data = data.data; | ||||
@@ -60,6 +64,17 @@ const CreateExpenseModal: React.FC<Props> = ({ isOpen, onClose, projects }) => { | |||||
}; | }; | ||||
}); | }); | ||||
console.log(postData); | 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) { | } catch (error) { | ||||
console.log(error); | console.log(error); | ||||
} | } | ||||
@@ -28,15 +28,17 @@ const ExpenseSearchWrapper: React.FC & SubComponents = async () => { | |||||
let filteredExpenses = expenses | let filteredExpenses = expenses | ||||
if (teamId) { | if (teamId) { | ||||
filteredExpenses = expenses.filter(e => e.teamId === teamId) | filteredExpenses = expenses.filter(e => e.teamId === teamId) | ||||
} else { | |||||
filteredExpenses = [] | |||||
} | |||||
} | |||||
// else { | |||||
// filteredExpenses = [] | |||||
// } | |||||
const _expenses = filteredExpenses.map((e) => { | 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 ({ | return ({ | ||||
...e, | ...e, | ||||
issueDate: formattedIssueDate, | issueDate: formattedIssueDate, | ||||