1851 lines
49 KiB
JavaScript
1851 lines
49 KiB
JavaScript
"use client";
|
|
import React from "react";
|
|
import "../../style/globals.css";
|
|
import { Inter } from "next/font/google";
|
|
import "../../style/fontiran.css";
|
|
import NavBAr from "@comp/NavBar/NavBAr";
|
|
import "swiper/css";
|
|
import "swiper/css/navigation";
|
|
import "react-spring-bottom-sheet/dist/style.css";
|
|
import AppContext from "../../Contexts/AppContext";
|
|
import { useCallback, useEffect, useState } from "react";
|
|
import { motion } from "framer-motion";
|
|
import Link from "next/link";
|
|
import { usePathname, useRouter } from "next/navigation";
|
|
import { toast, ToastContainer } from "react-toastify";
|
|
import "react-toastify/dist/ReactToastify.css";
|
|
import Loading from "plugins/Loading/page";
|
|
import Chapar, { getToken } from "plugins/Chapar";
|
|
import TimePicker from "plugins/TimePicker/page";
|
|
import axios from "axios";
|
|
import "rc-slider/assets/index.css";
|
|
import BottomSheetReport from "plugins/BottomSheet/BottomSheetReport";
|
|
import BottomSheetReportManageShift from "plugins/BottomSheet/BottomSheetReportManageShift";
|
|
import moment from "jalali-moment";
|
|
|
|
const inter = Inter({ subsets: ["latin"] });
|
|
|
|
const RootData = ({ children }) => {
|
|
// BottomSheet
|
|
const [BottomSheetCreateRoleOpen, setBottomSheetCreateRoleOpen] =
|
|
useState(false);
|
|
|
|
const [BottomSheetCreateEmployeesOpen, setBottomSheetCreateEmployeesOpen] =
|
|
useState(false);
|
|
|
|
const [BottomSheetCreateShiftsOpen, setBottomSheetCreateShiftsOpen] =
|
|
useState(false);
|
|
|
|
const [BottomManageShiftOpen, setBottomManageShiftOpen] = useState(false);
|
|
const [BottomFilterActivitiesOpen, setBottomFilterActivitiesOpen] =
|
|
useState(false);
|
|
const [BottomSheetCreateRoutineOpen, setBottomSheetCreateRoutineOpen] =
|
|
useState(false);
|
|
const [BottomSheetCreateSectionOpen, setBottomSheetCreateSectionOpen] =
|
|
useState(false);
|
|
|
|
const [BottomSheetCreatePositionOpen, setBottomSheetCreatePositionOpen] =
|
|
useState(false);
|
|
|
|
const [
|
|
BottomSheetAddUserToPositionShiftPlanOpen,
|
|
setBottomSheetAddUserToPositionShiftPlanOpen,
|
|
] = useState(false);
|
|
|
|
const [BottomSheetChangeRoleOpen, setBottomSheetChangeRoleOpen] =
|
|
useState(false);
|
|
|
|
const [BottomSheetReportOpen, setBottomSheetReportOpen] = useState(false);
|
|
const [
|
|
BottomSheetReportManageShiftOpen,
|
|
setBottomSheetReportManageShiftOpen,
|
|
] = useState(false);
|
|
|
|
const [BottomSheetCreateTaskOpen, setBottomSheetCreateTaskOpen] =
|
|
useState(false);
|
|
|
|
// BigPlus
|
|
const [BigPlusOpen, setBigPlusOpen] = useState(false);
|
|
const [BigPlusRotateIcon, setBigPlusRotateIcon] = useState(false);
|
|
|
|
// login
|
|
const [phoneNumber, setPhoneNumber] = useState("");
|
|
const [verifyCode, setVerifyCode] = useState("");
|
|
const [stepLogin, setStepLogin] = useState(0);
|
|
const [tokenForStorage, setTokenForStorage] = useState(null);
|
|
const [profile, setProfile] = useState([]);
|
|
|
|
// loading
|
|
|
|
const [loading, setLoading] = useState(false);
|
|
|
|
//auth
|
|
const [complexId, setComplexId] = useState(0);
|
|
|
|
// createRole / role
|
|
const [permissions, setPermissions] = useState(0);
|
|
const [permissionsChoose, setPermissionsChoose] = useState([]);
|
|
const [rolesData, setRolesData] = useState([]);
|
|
const [roleData, setRoleData] = useState([]);
|
|
const [goToEditRole, setGoToEditRole] = useState(false);
|
|
const [idEditRole, setIdEditRole] = useState(null);
|
|
|
|
// createUser/ user
|
|
const [usersData, setUsersData] = useState([]);
|
|
const [userStaffData, setUserStaffData] = useState([]);
|
|
const [rolesChoose, setRolesChoose] = useState([]);
|
|
const [userData, setUserData] = useState([]);
|
|
const [goToEditUser, setGoToEditUser] = useState(false);
|
|
const [idEditUser, setIdEditUser] = useState(null);
|
|
|
|
// createsection/ section
|
|
const [sectionsData, setSectionsData] = useState([]);
|
|
const [sectionData, setSectionData] = useState([]);
|
|
const [goToEditSection, setGoToEditSection] = useState(false);
|
|
const [idEditSection, setIdEditSection] = useState(null);
|
|
|
|
// createroutine/ routine
|
|
const [routinesData, setRoutinesData] = useState([]);
|
|
const [routineData, setRoutineData] = useState([]);
|
|
const [routineShiftPlan, setRoutineShiftPlan] = useState([]);
|
|
const [goToEditRoutine, setGoToEditRoutine] = useState(false);
|
|
const [idEditRoutine, setIdEditRoutine] = useState(null);
|
|
|
|
// createPosition/ Position
|
|
const [positionsData, setPositionsData] = useState([]);
|
|
const [positionData, setPositionData] = useState([]);
|
|
const [goToEditPosition, setGoToEditPosition] = useState(false);
|
|
const [idEditPosition, setIdEditPosition] = useState(null);
|
|
const [sectionIdChoose, setSectionIdChoose] = useState([]);
|
|
|
|
// shift
|
|
const [dayOfWeeksChoose, setDayOfWeeksChoose] = useState([]);
|
|
const [startAtTimeShift, setStartAtTimeShift] = useState(["00", "00"]);
|
|
const [endAtTimeShift, setEndAtTimeShift] = useState(["00", "00"]);
|
|
const [shiftsData, setShiftsData] = useState([null]);
|
|
const [shiftData, setShiftData] = useState([null]);
|
|
const [goToEditShift, setGoToEditShift] = useState(false);
|
|
const [idEditShift, setIdEditShift] = useState(null);
|
|
const [shiftPlanData, setShiftPlanData] = useState([]);
|
|
const [shiftPlansData, setShifPlansData] = useState([]);
|
|
|
|
// task
|
|
const [routineForTaskChoose, setRoutineForTaskChoose] = useState([]);
|
|
const [positionsForTaskChoose, setPositionsForTaskChoose] = useState([]);
|
|
const [shiftsForTaskChoose, setShiftsForTaskChoose] = useState([]);
|
|
const [shiftsDaysChoose, setShiftsDaysChoose] = useState([]);
|
|
const [tasksData, setTasksData] = useState([]);
|
|
const [taskData, setTaskData] = useState([]);
|
|
const [goToEditTask, setGoToEditTask] = useState(false);
|
|
const [idEditTask, setIdEditTask] = useState(null);
|
|
const [pageGetTasks, setPageGetTasks] = useState(0);
|
|
const [stopGetTasks, setStopGetTasks] = useState(false);
|
|
const [typeTask, setTypeTask] = useState(1);
|
|
|
|
// activity
|
|
const [activitiesData, setActivitiesData] = useState([]);
|
|
const [pageGetActivity, setPageGetActivity] = useState(0);
|
|
const [stopGetActivities, setStopGetActivities] = useState(false);
|
|
|
|
// shift manage-shift
|
|
const [searchUserChoose, setSearchUserChoose] = useState([]);
|
|
|
|
// TimePicker
|
|
const [openTimePicker, setOpenTimePicker] = useState(false);
|
|
const [TimePickerOrder, setTimePickerOrder] = useState(null);
|
|
|
|
// closeShift
|
|
const [completeActivities, setCompleteActivities] = useState([]);
|
|
|
|
//report
|
|
const [reportDetail, setReportDetail] = useState(null);
|
|
|
|
//home page
|
|
const [homePageData, setHomePageData] = useState([]);
|
|
const [coffeeBrewData, setCoffeeBrewData] = useState([]);
|
|
const [latesCoffeeBrewData, setLatesCoffeeBrewData] = useState([]);
|
|
|
|
//notif
|
|
const [notifUnreadData, setNotifUnreadData] = useState("");
|
|
|
|
const pathname = usePathname();
|
|
const router = useRouter();
|
|
const hiddenUrls = ["/app/login", "/pricing", "/about-us", "/"];
|
|
const shouldRenderComponent = !hiddenUrls.includes(pathname);
|
|
|
|
const closeBigPlusPage = () => {
|
|
setTimeout(() => {
|
|
setBigPlusOpen(false);
|
|
}, 500);
|
|
|
|
setBigPlusRotateIcon(false);
|
|
};
|
|
const ConfirmPhoneNumber = async (phoneNumber) => {
|
|
try {
|
|
const data = await Chapar.get(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/auth/verifycode?phoneNumber=${phoneNumber}`
|
|
);
|
|
setStepLogin(1);
|
|
localStorage.removeItem("token");
|
|
} catch ({ error, status }) {
|
|
toast.error(" اطلاعات را صحیح وارد کنید ", {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
}
|
|
};
|
|
const LoginWhitVerifyCode = async () => {
|
|
setLoading(true);
|
|
|
|
try {
|
|
const data = await Chapar.post(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/auth/login/code`,
|
|
{
|
|
userName: phoneNumber,
|
|
password: null,
|
|
verifyCode,
|
|
}
|
|
);
|
|
setLoading(false);
|
|
localStorage.setItem("token", data.access_token);
|
|
|
|
if (data.user.signUpStatus == 1) {
|
|
setStepLogin(2);
|
|
} else if (data.user.signUpStatus == 2 || data.user.signUpStatus == 3) {
|
|
setProfile(data);
|
|
toast.success(`${data.user.firstName} جان خوش اومدی `, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
router.push("/app/home");
|
|
}
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const SignUpLogin = async (body) => {
|
|
setLoading(true);
|
|
|
|
try {
|
|
const data = await Chapar.post(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/auth/signup/complex`,
|
|
body,
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
|
|
setLoading(false);
|
|
|
|
if (data.user.signUpStatus == 2 || data.user.signUpStatus == 3) {
|
|
setProfile(data);
|
|
|
|
toast.success(` ${data.user.firstName} جان خوش اومدی `, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
// localStorage.removeItem("token");
|
|
localStorage.setItem("token", data.access_token);
|
|
|
|
router.push("/app/home");
|
|
}
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const GetPermissions = async (body) => {
|
|
setLoading(true);
|
|
|
|
try {
|
|
const data = await Chapar.get(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/role/permission`,
|
|
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
|
|
setPermissions(data);
|
|
setLoading(false);
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const CreateRole = async (body) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.post(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/role`,
|
|
body,
|
|
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
toast.success(`نقش ساخته شد`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setBottomSheetCreateRoleOpen(false);
|
|
setLoading(false);
|
|
GetRoles();
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const UpdateRole = async (body) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.put(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/role`,
|
|
body,
|
|
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
toast.success(`نقش ویرایش شد`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setBottomSheetCreateRoleOpen(false);
|
|
setLoading(false);
|
|
GetRoles();
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const GetRoles = async () => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.get(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/role?page=0`,
|
|
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
setRolesData(data);
|
|
setLoading(false);
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const GetRole = async (id) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.get(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/role/${id}?page=0`,
|
|
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
setRoleData(data);
|
|
setLoading(false);
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const DeleteRole = async (id) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.delete(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/role/${id}`,
|
|
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
setBottomSheetCreateRoleOpen(false);
|
|
setLoading(false);
|
|
|
|
GetRoles();
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const CreateUser = async (body) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.post(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/user`,
|
|
body,
|
|
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
toast.success(`کاربر ساخته شد`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setBottomSheetCreateEmployeesOpen(false);
|
|
setLoading(false);
|
|
GetUsers();
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const UpdateUser = async (body) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.put(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/user`,
|
|
body,
|
|
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
toast.success(`کاربر ویرایش شد`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setBottomSheetCreateEmployeesOpen(false);
|
|
setLoading(false);
|
|
GetUsers();
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const GetUsers = async () => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.get(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/user?page=0`,
|
|
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
|
|
setUsersData(data);
|
|
setLoading(false);
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const GetUser = async (id) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.get(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/user/${id}`,
|
|
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
setUserData(data);
|
|
setLoading(false);
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const GetUserStaff = async (FilterDate) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.get(
|
|
`${
|
|
process.env.NEXT_PUBLIC_API_URL
|
|
}/user/staff?filter=${FilterDate}&page=${0}`,
|
|
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
setUserStaffData(data);
|
|
setLoading(false);
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const DeleteUser = async (id) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.delete(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/user/${id}`,
|
|
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
setBottomSheetCreateEmployeesOpen(false);
|
|
setLoading(false);
|
|
|
|
GetUsers();
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const CreateShift = async (body) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.post(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/shift`,
|
|
JSON.stringify(body),
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
toast.success(`شیفت ساخته شد`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setBottomSheetCreateShiftsOpen(false);
|
|
setLoading(false);
|
|
GetShifts();
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const UpdateShift = async (body) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.put(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/shift`,
|
|
body,
|
|
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
toast.success(`شیفت ویرایش شد`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
|
|
setBottomSheetCreateShiftsOpen(false);
|
|
setLoading(false);
|
|
GetShifts();
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const GetShifts = async (date) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.get(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/shift?page=0${
|
|
date ? `&selectedDate=${date}` : ""
|
|
}`,
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
setShiftsData(data);
|
|
setLoading(false);
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const GetShift = async (id) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.get(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/shift/${id}`,
|
|
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
setShiftData(data);
|
|
setLoading(false);
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const DeleteShift = async (id) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.delete(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/shift/${id}`,
|
|
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
setBottomSheetCreateShiftsOpen(false);
|
|
|
|
setLoading(false);
|
|
GetShifts();
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const CreateSection = async (body) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.post(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/section`,
|
|
JSON.stringify(body),
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
toast.success(`سکشن ساخته شد`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setBottomSheetCreateSectionOpen(false);
|
|
setLoading(false);
|
|
GetSections();
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const UpdateSection = async (body) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.put(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/section`,
|
|
body,
|
|
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
toast.success(`سکشن ویرایش شد`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
|
|
setBottomSheetCreateSectionOpen(false);
|
|
setLoading(false);
|
|
GetSections();
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const GetSections = async () => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.get(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/section?page=0`,
|
|
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
setSectionsData(data);
|
|
setLoading(false);
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const GetSection = async (id) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.get(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/section/${id}`,
|
|
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
setSectionData(data);
|
|
setLoading(false);
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const DeleteSection = async (id) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.delete(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/section/${id}`,
|
|
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
setBottomSheetCreateSectionOpen(false);
|
|
|
|
setLoading(false);
|
|
GetSections();
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const CreateRoutine = async (body) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.post(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/routine`,
|
|
JSON.stringify(body),
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
toast.success(`روتین ساخته شد`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setBottomSheetCreateRoutineOpen(false);
|
|
setLoading(false);
|
|
GetRoutines();
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const UpdateRoutine = async (body) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.put(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/routine`,
|
|
body,
|
|
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
toast.success(`روتین ویرایش شد`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
|
|
setBottomSheetCreateRoutineOpen(false);
|
|
setLoading(false);
|
|
GetRoutines();
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const GetRoutines = async () => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.get(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/routine?page=0`,
|
|
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
setRoutinesData(data);
|
|
setLoading(false);
|
|
} catch (error) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
// if (error.response.status === 401) {
|
|
// localStorage.removeItem("token");
|
|
// window.location.href = "/";
|
|
// }
|
|
}
|
|
};
|
|
const GetRoutine = async (id) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.get(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/routine/${id}`,
|
|
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
setRoutineData(data);
|
|
setLoading(false);
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const GetRoutineShiftPlan = async (id, time) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.get(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/routine/${id}/shift?selectedDate=${time}`,
|
|
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
|
|
setRoutineShiftPlan(data);
|
|
setLoading(false);
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const GetShiftPlan = async (id) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.get(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/shift/plan/${id}`,
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
setShiftPlanData(data);
|
|
setLoading(false);
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
|
|
const GetShifPlans = async (page, dataFilter) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.get(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/shift/plan?page=${page}&dateFilter=${dataFilter}`,
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
|
|
setShifPlansData(data);
|
|
|
|
setLoading(false);
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const DeleteRoutine = async (id) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.delete(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/routine/${id}`,
|
|
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
setBottomSheetCreateRoutineOpen(false);
|
|
|
|
setLoading(false);
|
|
GetRoutines();
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const CreatePosition = async (body) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.post(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/position`,
|
|
JSON.stringify(body),
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
toast.success(`پوزیشن ساخته شد`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setBottomSheetCreatePositionOpen(false);
|
|
setLoading(false);
|
|
GetPositions();
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const UpdatePosition = async (body) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.put(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/position`,
|
|
body,
|
|
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
toast.success(`پوزیشن ویرایش شد`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
|
|
setBottomSheetCreatePositionOpen(false);
|
|
setLoading(false);
|
|
GetPositions();
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const GetPositions = async () => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.get(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/position?page=0`,
|
|
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
setPositionsData(data);
|
|
setLoading(false);
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const GetPosition = async (id) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.get(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/position/${id}`,
|
|
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
setPositionData(data);
|
|
setLoading(false);
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const DeletePosition = async (id) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.delete(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/position/${id}`,
|
|
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
setBottomSheetCreatePositionOpen(false);
|
|
|
|
setLoading(false);
|
|
GetPositions();
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const CreateTask = async (body) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.post(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/task`,
|
|
JSON.stringify(body),
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
toast.success(`فعالیت ساخته شد`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
// router->
|
|
|
|
setLoading(false);
|
|
|
|
router.push("/app/tasks");
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const UpdateTask = async (body) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.put(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/task`,
|
|
body,
|
|
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
toast.success(`فعالیت ویرایش شد`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
|
|
// router->
|
|
|
|
setLoading(false);
|
|
router.push("/app/tasks");
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const GetTasks = async (page, shiftId) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.get(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/task?page=${page}&shiftId=${shiftId}`,
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
|
|
if (data.length < 14) {
|
|
setStopGetTasks(true);
|
|
}
|
|
if (page == 0) {
|
|
setTasksData(data);
|
|
} else {
|
|
setTasksData((prevData) => [...prevData, ...data]);
|
|
}
|
|
|
|
setLoading(false);
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const GetTask = async (id) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.get(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/task/${id}`,
|
|
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
setTaskData(data);
|
|
setLoading(false);
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const DeleteTask = async (id) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.delete(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/task/${id}`,
|
|
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
|
|
setLoading(false);
|
|
setBottomSheetCreateTaskOpen(false);
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
|
|
const GetActivity = async (date, shift, page, dateQueryFilter, userId) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.get(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/activity?page=${page}${
|
|
date ? `&selectedDate=${date}` : ""
|
|
}${shift ? `&selectedShiftPlanId=${shift}` : ""}${
|
|
dateQueryFilter != null ? `&dateQueryFilter=${dateQueryFilter}` : ""
|
|
}${userId != null ? `&userId=${userId}` : ""}`,
|
|
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
|
|
if (data.length < 19) {
|
|
setStopGetActivities(true);
|
|
}
|
|
|
|
if (page == 0) {
|
|
setActivitiesData(data);
|
|
} else {
|
|
setActivitiesData((prevData) => [...prevData, ...data]);
|
|
}
|
|
|
|
setLoading(false);
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const DoneActivity = async (id) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.post(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/activity/done/${id}`,
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
toast.success(`فعالیت ثبت شد`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
// router->
|
|
|
|
setLoading(false);
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
const UnDoneActivity = async (id, resone) => {
|
|
setLoading(true);
|
|
|
|
try {
|
|
const data = await Chapar.post(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/activity/undone/${id}?undoneReason=${resone}`,
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
toast.success(`فعالیت ثبت شد`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
// router->
|
|
|
|
setLoading(false);
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
|
|
const CloseShift = async (body, id, index) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.post(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/shift/plan/${id}/complete`,
|
|
body,
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
toast.success(`شیفت بسته شد`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
// router->
|
|
|
|
CTX.GetShifts(moment().locale("fa").startOf("day").unix() * 1000);
|
|
|
|
setLoading(false);
|
|
// GetTasks();
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
|
|
const changeRole = async (id) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.post(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/user/role/change/${id}`,
|
|
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
localStorage.setItem("token", data.access_token);
|
|
setProfile(data);
|
|
setLoading(false);
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
|
|
const CheckUser = async () => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.get(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/user/profile`,
|
|
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
setProfile(data);
|
|
|
|
setLoading(false);
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
|
|
const ReportShiftPlan = async (shiftPlanId) => {
|
|
setLoading(true);
|
|
try {
|
|
const response = await fetch(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/report/shift/plan/${shiftPlanId}`,
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
|
|
if (!response.ok) {
|
|
throw new Error("Failed to download report");
|
|
}
|
|
|
|
const blob = await response.blob();
|
|
const url = window.URL.createObjectURL(blob);
|
|
const a = document.createElement("a");
|
|
a.href = url;
|
|
a.download = "report.xlsx"; // Change the filename if needed
|
|
document.body.appendChild(a);
|
|
a.click();
|
|
a.remove();
|
|
|
|
setLoading(false);
|
|
} catch (error) {
|
|
toast.error(error.message, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
|
|
const ReportTask = async () => {
|
|
setLoading(true);
|
|
try {
|
|
const response = await fetch(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/report/task`,
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
|
|
if (!response.ok) {
|
|
throw new Error("Failed to download report");
|
|
}
|
|
|
|
const blob = await response.blob();
|
|
const url = window.URL.createObjectURL(blob);
|
|
const a = document.createElement("a");
|
|
a.href = url;
|
|
a.download = "report.xlsx"; // Change the filename if needed
|
|
document.body.appendChild(a);
|
|
a.click();
|
|
a.remove();
|
|
|
|
setLoading(false);
|
|
} catch (error) {
|
|
toast.error(error.message, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
|
|
const GetHomePageData = async (id) => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.get(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/page/app/dashboard`,
|
|
|
|
{
|
|
headers: {
|
|
Authorization: "Bearer " + localStorage.getItem("token"),
|
|
},
|
|
}
|
|
);
|
|
|
|
setHomePageData(data);
|
|
setLoading(false);
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
|
|
const GetCoffeeBrewData = async () => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.get(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/brew/CoffeeBrew`
|
|
);
|
|
|
|
setCoffeeBrewData(data);
|
|
setLoading(false);
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
|
|
const GetLatesCoffeeBrewData = async () => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.get(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/brew/CoffeeBrew/latest`
|
|
);
|
|
|
|
setLatesCoffeeBrewData(data);
|
|
setLoading(false);
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
|
|
const GetUnReadNotif = async () => {
|
|
setLoading(true);
|
|
try {
|
|
const data = await Chapar.get(
|
|
`${process.env.NEXT_PUBLIC_API_URL}/notification/unread/count`
|
|
);
|
|
setNotifUnreadData(data);
|
|
setLoading(false);
|
|
|
|
return data;
|
|
} catch ({ error, status }) {
|
|
toast.error(`${error?.response?.data?.message}`, {
|
|
position: "bottom-right",
|
|
closeOnClick: true,
|
|
});
|
|
setLoading(false);
|
|
}
|
|
};
|
|
|
|
useEffect(() => {
|
|
console.log(`
|
|
bbbbbbbb
|
|
b::::::b iiii
|
|
b::::::b i::::i
|
|
b::::::b iiii
|
|
b:::::b
|
|
b:::::bbbbbbbbb rrrrr rrrrrrrrr iiiiiiizzzzzzzzzzzzzzzzz cccccccccccccccc ooooooooooo
|
|
b::::::::::::::bb r::::rrr:::::::::ri:::::iz:::::::::::::::z cc:::::::::::::::coo:::::::::::oo
|
|
b::::::::::::::::br:::::::::::::::::ri::::iz::::::::::::::z c:::::::::::::::::o:::::::::::::::o
|
|
b:::::bbbbb:::::::rr::::::rrrrr::::::i::::izzzzzzzz::::::z c:::::::cccccc:::::o:::::ooooo:::::o
|
|
b:::::b b::::::br:::::r r:::::i::::i z::::::z c::::::c cccccco::::o o::::o
|
|
b:::::b b:::::br:::::r rrrrrri::::i z::::::z c:::::c o::::o o::::o
|
|
b:::::b b:::::br:::::r i::::i z::::::z c:::::c o::::o o::::o
|
|
b:::::b b:::::br:::::r i::::i z::::::z c::::::c cccccco::::o o::::o
|
|
b:::::bbbbbb::::::br:::::r i::::::i z::::::zzzzzzzc:::::::cccccc:::::o:::::ooooo:::::o
|
|
b::::::::::::::::b r:::::r i::::::iz::::::::::::::zc:::::::::::::::::o:::::::::::::::o
|
|
b:::::::::::::::b r:::::r i::::::z:::::::::::::::z cc:::::::::::::::coo:::::::::::oo
|
|
bbbbbbbbbbbbbbbb rrrrrrr iiiiiiizzzzzzzzzzzzzzzzz cccccccccccccccc ooooooooooo
|
|
|
|
soli chizi bood bgo hossein__masoomi
|
|
|
|
`);
|
|
const token = localStorage.getItem("token");
|
|
// if (!token) {
|
|
// router.push("/app/login");
|
|
// }
|
|
|
|
if (profile.length <= 0 && token) {
|
|
CheckUser();
|
|
}
|
|
}, []);
|
|
return (
|
|
<AppContext.Provider
|
|
value={{
|
|
state: {
|
|
BottomSheetCreateRoleOpen,
|
|
BottomSheetCreateEmployeesOpen,
|
|
BottomSheetCreateShiftsOpen,
|
|
BigPlusOpen,
|
|
BigPlusRotateIcon,
|
|
loading,
|
|
stepLogin,
|
|
phoneNumber,
|
|
verifyCode,
|
|
tokenForStorage,
|
|
complexId,
|
|
permissions,
|
|
permissionsChoose,
|
|
rolesData,
|
|
usersData,
|
|
rolesChoose,
|
|
goToEditRole,
|
|
roleData,
|
|
idEditRole,
|
|
idEditUser,
|
|
goToEditUser,
|
|
userData,
|
|
openTimePicker,
|
|
endAtTimeShift,
|
|
startAtTimeShift,
|
|
TimePickerOrder,
|
|
shiftsData,
|
|
idEditShift,
|
|
goToEditShift,
|
|
shiftData,
|
|
profile,
|
|
searchUserChoose,
|
|
BottomManageShiftOpen,
|
|
idEditSection,
|
|
goToEditSection,
|
|
sectionData,
|
|
sectionsData,
|
|
BottomSheetCreateSectionOpen,
|
|
BottomSheetCreateRoutineOpen,
|
|
idEditRoutine,
|
|
goToEditRoutine,
|
|
routineData,
|
|
routinesData,
|
|
dayOfWeeksChoose,
|
|
idEditPosition,
|
|
goToEditPosition,
|
|
positionData,
|
|
positionsData,
|
|
BottomSheetCreatePositionOpen,
|
|
sectionIdChoose,
|
|
routineForTaskChoose,
|
|
positionsForTaskChoose,
|
|
shiftsForTaskChoose,
|
|
shiftsDaysChoose,
|
|
idEditTask,
|
|
goToEditTask,
|
|
taskData,
|
|
tasksData,
|
|
routineShiftPlan,
|
|
BottomSheetAddUserToPositionShiftPlanOpen,
|
|
BottomSheetChangeRoleOpen,
|
|
activitiesData,
|
|
completeActivities,
|
|
shiftPlanData,
|
|
stopGetTasks,
|
|
pageGetTasks,
|
|
stopGetActivities,
|
|
pageGetActivity,
|
|
shiftPlansData,
|
|
BottomSheetReportOpen,
|
|
reportDetail,
|
|
BottomFilterActivitiesOpen,
|
|
homePageData,
|
|
typeTask,
|
|
BottomSheetReportManageShiftOpen,
|
|
coffeeBrewData,
|
|
latesCoffeeBrewData,
|
|
BottomSheetCreateTaskOpen,
|
|
userStaffData,
|
|
notifUnreadData,
|
|
},
|
|
setBottomSheetCreateRoleOpen,
|
|
setBottomSheetCreateEmployeesOpen,
|
|
setBottomSheetCreateShiftsOpen,
|
|
setBigPlusOpen,
|
|
setBigPlusRotateIcon,
|
|
setLoading,
|
|
ConfirmPhoneNumber,
|
|
LoginWhitVerifyCode,
|
|
setStepLogin,
|
|
setPhoneNumber,
|
|
setVerifyCode,
|
|
SignUpLogin,
|
|
setTokenForStorage,
|
|
setComplexId,
|
|
setPermissions,
|
|
GetPermissions,
|
|
setPermissionsChoose,
|
|
CreateRole,
|
|
setRolesData,
|
|
GetRoles,
|
|
CreateUser,
|
|
GetUsers,
|
|
setUsersData,
|
|
setRolesChoose,
|
|
setGoToEditRole,
|
|
setRoleData,
|
|
GetRole,
|
|
setIdEditRole,
|
|
DeleteRole,
|
|
UpdateRole,
|
|
setIdEditUser,
|
|
setGoToEditUser,
|
|
setUserData,
|
|
DeleteUser,
|
|
GetUser,
|
|
UpdateUser,
|
|
setOpenTimePicker,
|
|
setEndAtTimeShift,
|
|
setIdEditShift,
|
|
setGoToEditShift,
|
|
setStartAtTimeShift,
|
|
setBottomManageShiftOpen,
|
|
GetShifts,
|
|
DeleteShift,
|
|
GetShift,
|
|
UpdateShift,
|
|
CreateShift,
|
|
setIdEditSection,
|
|
setGoToEditSection,
|
|
setSectionData,
|
|
setSectionsData,
|
|
setBottomSheetCreateSectionOpen,
|
|
DeleteSection,
|
|
GetSection,
|
|
GetSections,
|
|
UpdateSection,
|
|
CreateSection,
|
|
setBottomSheetCreateRoutineOpen,
|
|
setIdEditRoutine,
|
|
setGoToEditRoutine,
|
|
setRoutineData,
|
|
setRoutinesData,
|
|
DeleteRoutine,
|
|
GetRoutine,
|
|
GetRoutines,
|
|
UpdateRoutine,
|
|
CreateRoutine,
|
|
setDayOfWeeksChoose,
|
|
setShiftData,
|
|
setTimePickerOrder,
|
|
setSearchUserChoose,
|
|
setIdEditPosition,
|
|
setGoToEditPosition,
|
|
setPositionData,
|
|
setPositionsData,
|
|
setBottomSheetCreatePositionOpen,
|
|
DeletePosition,
|
|
GetPosition,
|
|
GetPositions,
|
|
UpdatePosition,
|
|
CreatePosition,
|
|
setSectionIdChoose,
|
|
setRoutineForTaskChoose,
|
|
setPositionsForTaskChoose,
|
|
setShiftsForTaskChoose,
|
|
setShiftsDaysChoose,
|
|
DeleteTask,
|
|
GetTask,
|
|
GetTasks,
|
|
UpdateTask,
|
|
CreateTask,
|
|
setIdEditTask,
|
|
setGoToEditTask,
|
|
setTaskData,
|
|
setTasksData,
|
|
setRoutineShiftPlan,
|
|
GetRoutineShiftPlan,
|
|
setBottomSheetAddUserToPositionShiftPlanOpen,
|
|
// CreateShifPlan,
|
|
setBottomSheetChangeRoleOpen,
|
|
setActivitiesData,
|
|
GetActivity,
|
|
UnDoneActivity,
|
|
DoneActivity,
|
|
changeRole,
|
|
setCompleteActivities,
|
|
CloseShift,
|
|
setShiftPlanData,
|
|
GetShiftPlan,
|
|
// UpdateShiftPlan,
|
|
setStopGetTasks,
|
|
setPageGetTasks,
|
|
setStopGetActivities,
|
|
setPageGetActivity,
|
|
setShifPlansData,
|
|
GetShifPlans,
|
|
setBottomSheetReportOpen,
|
|
setReportDetail,
|
|
ReportShiftPlan,
|
|
ReportTask,
|
|
setBottomFilterActivitiesOpen,
|
|
setHomePageData,
|
|
GetHomePageData,
|
|
setTypeTask,
|
|
setBottomSheetReportManageShiftOpen,
|
|
setCoffeeBrewData,
|
|
GetCoffeeBrewData,
|
|
GetLatesCoffeeBrewData,
|
|
setLatesCoffeeBrewData,
|
|
setBottomSheetCreateTaskOpen,
|
|
setUserStaffData,
|
|
GetUserStaff,
|
|
setNotifUnreadData,
|
|
GetUnReadNotif,
|
|
}}
|
|
>
|
|
{children}
|
|
{shouldRenderComponent && <NavBAr />}
|
|
<ToastContainer position="bottom-right" closeOnClick={true} rtl />
|
|
<Loading />
|
|
<BottomSheetReport />
|
|
<BottomSheetReportManageShift />
|
|
|
|
{openTimePicker && <TimePicker />}
|
|
</AppContext.Provider>
|
|
);
|
|
};
|
|
|
|
export default RootData;
|