Преглед на файлове

add import OS timesheets function

tags/Baseline_30082024_FRONTEND_UAT
cyril.tsui преди 1 година
родител
ревизия
c05a5f6ec0
променени са 2 файла, в които са добавени 44 реда и са изтрити 10 реда
  1. +12
    -0
      src/app/api/timesheets/actions.ts
  2. +32
    -10
      src/components/ExcelFileImport/ExcelFileImport.tsx

+ 12
- 0
src/app/api/timesheets/actions.ts Целия файл

@@ -159,6 +159,18 @@ export const importTimesheets = async (data: FormData) => {
return importTimesheets;
};

export const importOSTimesheets = async (data: FormData) => {
const importTimesheets = await serverFetchString<string>(
`${BASE_API_URL}/timesheets/import-OS`,
{
method: "POST",
body: data,
},
);

return importTimesheets;
};

export const importLeaves = async (data: FormData) => {
const importLeaves = await serverFetchString<string>(
`${BASE_API_URL}/timesheets/import-leave`,


+ 32
- 10
src/components/ExcelFileImport/ExcelFileImport.tsx Целия файл

@@ -6,7 +6,7 @@ import { Button, Grid, Stack } from "@mui/material";
import React, { ChangeEvent, useCallback } from "react";
import { useTranslation } from "react-i18next";
import { errorDialogWithContent, submitDialog, successDialog, successDialogWithContent } from "../Swal/CustomAlerts";
import { importLeaves, importTimesheets, rearrangeTimesheets } from "@/app/api/timesheets/actions";
import { importLeaves, importOSTimesheets, importTimesheets, rearrangeTimesheets } from "@/app/api/timesheets/actions";

interface Props {
}
@@ -34,6 +34,9 @@ const ExcelFileImport: React.FC<Props> = async ({ }) => {
case "importTimesheet":
response = await importTimesheets(formData)
break;
case "importOSTimesheet":
response = await importOSTimesheets(formData)
break;
case "importLeave":
response = await importLeaves(formData)
break;
@@ -67,23 +70,23 @@ const ExcelFileImport: React.FC<Props> = async ({ }) => {
response = await rearrangeTimesheets()
break;
}
if (response.includes("Rearrange success")) {
successDialogWithContent(t("Rearrange Success"), t(`${response}`), t)
} else {
errorDialogWithContent(t("Rearrange Fail"), t(`${response}`), t)
}
}, t,
{
title: "Do you want to rearrange?",
confirmButtonText: "Rearrange"
})
{
title: "Do you want to rearrange?",
confirmButtonText: "Rearrange"
})

} catch (err) {
console.log(err)
return false
}
}, [])

return (
@@ -99,7 +102,7 @@ const ExcelFileImport: React.FC<Props> = async ({ }) => {
<input
id='importProject'
type='file'
accept='.xlsx, .csv'
accept='.xlsx'
hidden
onChange={(event) => {
handleExcelFileImportClick(event)
@@ -118,7 +121,7 @@ const ExcelFileImport: React.FC<Props> = async ({ }) => {
<input
id='importTimesheet'
type='file'
accept='.xlsx, .csv'
accept='.xlsx'
hidden
onChange={(event) => {
handleExcelFileImportClick(event)
@@ -127,6 +130,25 @@ const ExcelFileImport: React.FC<Props> = async ({ }) => {
{t("Import Timesheet")}
</Button>
</Grid>
<Grid container>
<Button
variant="contained"
color="info"
startIcon={<FileUpload />}
component="label"
>
<input
id='importOSTimesheet'
type='file'
accept='.xlsx'
hidden
onChange={(event) => {
handleExcelFileImportClick(event)
}}
/>
{t("Import OS Timesheet")}
</Button>
</Grid>
<Grid container>
<Button
id="rearrangeTimesheet"
@@ -149,7 +171,7 @@ const ExcelFileImport: React.FC<Props> = async ({ }) => {
<input
id='importLeave'
type='file'
accept='.xlsx, .csv'
accept='.xlsx'
hidden
onChange={(event) => {
handleExcelFileImportClick(event)


Зареждане…
Отказ
Запис