feat: units inventory
This commit is contained in:
80
src/Pages/LiveStock/UnitsInventory.tsx
Normal file
80
src/Pages/LiveStock/UnitsInventory.tsx
Normal file
@@ -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<any[]>([]);
|
||||
|
||||
const { data } = useApiRequest<UnitsInventoryResponse>({
|
||||
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 (
|
||||
<Grid container column>
|
||||
<Table
|
||||
className="mt-2"
|
||||
onChange={setParams}
|
||||
count={data?.count || 0}
|
||||
isPaginated
|
||||
title="انبار واحدها"
|
||||
columns={[
|
||||
"ردیف",
|
||||
"کد رهگیری",
|
||||
"شماره رکورد",
|
||||
"تاریخ",
|
||||
"محصول",
|
||||
"مقدار",
|
||||
"واحد",
|
||||
"استان مبدا",
|
||||
"استان مقصد",
|
||||
"شهرستان مبدا",
|
||||
"شهرستان مقصد",
|
||||
"مبدا",
|
||||
"مقصد",
|
||||
"راننده",
|
||||
"کد رهگیری خودرو",
|
||||
]}
|
||||
rows={tableData}
|
||||
/>
|
||||
</Grid>
|
||||
);
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -109,6 +109,9 @@ export function getFaPermissions(permission: string) {
|
||||
case "tag_distribution_detail":
|
||||
faPermission = "جزئیات توزیع پلاک";
|
||||
break;
|
||||
case "units_inventory":
|
||||
faPermission = "انبار واحدها";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user