diff --git a/src/Pages/LiveStock/UnitsInventory.tsx b/src/Pages/LiveStock/UnitsInventory.tsx new file mode 100644 index 0000000..051f54a --- /dev/null +++ b/src/Pages/LiveStock/UnitsInventory.tsx @@ -0,0 +1,80 @@ +import { useEffect, useState } from "react"; +import { Grid } from "../../components/Grid/Grid"; +import Table from "../../components/Table/Table"; +import { useApiRequest } from "../../utils/useApiRequest"; +import { formatJustDate } from "../../utils/formatTime"; + +type UnitsInventoryResponse = { + results?: any[]; + count?: number; +}; + +export default function UnitsInventory() { + const [params, setParams] = useState({ page: 1, page_size: 10 }); + const [tableData, setTableData] = useState([]); + + const { data } = useApiRequest({ + api: "/rsi/web/api/v1/org_rsi_data/", + method: "get", + params, + queryKey: ["units_inventory", params], + }); + + useEffect(() => { + if (data?.results) { + const formattedData = data.results.map((item: any, i: number) => [ + params.page === 1 + ? i + 1 + : i + params.page_size * (params.page - 1) + 1, + item?.tracking || "-", + item?.record_id || "-", + formatJustDate(item?.data) || "-", + item?.product || "-", + item?.quantity ? Number(item.quantity).toLocaleString() : "-", + item?.unit || "-", + item?.origin_province || "-", + item?.destination_province || "-", + item?.origin_city || "-", + item?.destination_city || "-", + item?.origin || "-", + item?.destination || "-", + item?.driver_name || "-", + item?.car_tracking_code || "-", + ]); + + setTableData(formattedData); + } else { + setTableData([]); + } + }, [data]); + + return ( + + + + ); +} diff --git a/src/routes/paths.ts b/src/routes/paths.ts index af89bd3..79f605f 100644 --- a/src/routes/paths.ts +++ b/src/routes/paths.ts @@ -54,6 +54,7 @@ export const COOPERATIVE_LIST = "/livestock/cooperatives"; export const COOPERATIVE_RANCHERS_LIST = "/livestock/cooperatives/ranchers/$id/$name"; export const UNION_COOPERATIVE_LIST = "/livestock/cooperatives/$id/$name"; +export const UNITS_INVENTORY = "/livestock/units-inventory"; export const UNITS_SETTINGS = "/livestock/unit-settings"; //TAGGING diff --git a/src/utils/getCategoryParameters.ts b/src/utils/getCategoryParameters.ts index 11960dd..a8884ce 100644 --- a/src/utils/getCategoryParameters.ts +++ b/src/utils/getCategoryParameters.ts @@ -27,6 +27,7 @@ import TagDistribtution from "../Pages/LiveStock/TagDistribution"; import TagDistribtutionDetails from "../Pages/LiveStock/TagDistributionDetails"; import Tags from "../partials/LiveStock/tagging/Tags"; import Domains from "../Pages/Domains"; +import UnitsInventory from "../Pages/LiveStock/UnitsInventory"; export const adminCategoryItems = [ { @@ -80,6 +81,11 @@ export const unitCategoryItems = [ path: R.COOPERATIVE_RANCHERS_LIST, component: CooperativeRanchers, }, + { + name: "units_inventory", + path: R.UNITS_INVENTORY, + component: UnitsInventory, + }, { name: "units_settings", path: R.UNITS_SETTINGS, diff --git a/src/utils/getFaPermissions.ts b/src/utils/getFaPermissions.ts index 7a9ffef..3131ef2 100644 --- a/src/utils/getFaPermissions.ts +++ b/src/utils/getFaPermissions.ts @@ -109,6 +109,9 @@ export function getFaPermissions(permission: string) { case "tag_distribution_detail": faPermission = "جزئیات توزیع پلاک"; break; + case "units_inventory": + faPermission = "انبار واحدها"; + break; default: break; }