187 lines
6.3 KiB
JavaScript
187 lines
6.3 KiB
JavaScript
import React, { useEffect, useRef, useState } from "react";
|
|
import { Box, Divider, Typography } from "@mui/material";
|
|
import { useParams } from "react-router-dom";
|
|
import { useReactToPrint } from "react-to-print";
|
|
import { useDispatch } from "react-redux";
|
|
import moment from "moment";
|
|
import ProvinceSendLetterFactorReport from "../features/province/components/province-send-letter-factor-report/ProvinceSendLetterFactorReport";
|
|
import { provinceGetAllocationLetterReport } from "../features/province/services/province-get-allocation-letter-report";
|
|
import { Grid } from "../components/grid/Grid";
|
|
|
|
const DownloadReport = () => {
|
|
const styles = {
|
|
container: {
|
|
display: "flex",
|
|
flexDirection: "column",
|
|
alignItems: "center",
|
|
},
|
|
box: {
|
|
border: "1px solid #ccc",
|
|
borderRadius: "4px",
|
|
padding: "10px",
|
|
marginBottom: "20px",
|
|
},
|
|
innerBox: {
|
|
border: "1px solid #eee",
|
|
borderRadius: "4px",
|
|
padding: "5px",
|
|
marginBottom: "5px",
|
|
backgroundColor: "#fbfbea",
|
|
},
|
|
};
|
|
|
|
const { name } = useParams();
|
|
|
|
const componentRef = useRef();
|
|
|
|
const [factorData, setFactorData] = useState(null);
|
|
const dispatch = useDispatch();
|
|
|
|
const handleDownloadFactorDailySlaughter = () => {
|
|
try {
|
|
const result = dispatch(
|
|
provinceGetAllocationLetterReport(
|
|
moment(new Date()).format("YYYY-MM-DD")
|
|
)
|
|
);
|
|
setFactorData(result);
|
|
} catch (error) {
|
|
console.error(error);
|
|
}
|
|
};
|
|
|
|
const printPDF = useReactToPrint({
|
|
content: () => componentRef.current,
|
|
documentTitle: "گزارش کشتار روزانه",
|
|
});
|
|
|
|
// useEffect(() => {
|
|
// if (factorData) {
|
|
// printPDF();
|
|
// }
|
|
// }, [factorData, printPDF]);
|
|
|
|
useEffect(() => {
|
|
if (name === "ds") {
|
|
handleDownloadFactorDailySlaughter();
|
|
}
|
|
}, []);
|
|
|
|
return (
|
|
<Box
|
|
// sx={{
|
|
// justifyContent: "center",
|
|
// alignItems: "center",
|
|
// height: "100vh",
|
|
// backgroundColor: "#f0f0f0",
|
|
// paddingTop: "15%",
|
|
// }}
|
|
>
|
|
<div style={{ marginTop: "10px" }}>
|
|
<h4
|
|
style={{
|
|
textDecoration: "underline",
|
|
color: "blue",
|
|
cursor: "pointer",
|
|
}}
|
|
onClick={() => {
|
|
printPDF();
|
|
}}
|
|
>
|
|
جهت دانلود گزارش بصورت فایل پی دی اف کلیک کنید.
|
|
</h4>
|
|
|
|
<Grid container xs={12} justifyContent="center">
|
|
<Grid container xs={10} spacing={2} justifyContent="start">
|
|
{factorData?.payload?.data?.allocation?.map((item, i) => (
|
|
<Grid key={i} xs={12} sm={3} lg={2}>
|
|
<Box style={styles.box}>
|
|
<Typography color="primary" variant="h6">
|
|
ردیف: {i + 1}
|
|
</Typography>
|
|
<Typography>نام خریدار: {item?.name}</Typography>
|
|
<Typography>
|
|
تلفن: {item?.killHouseOperator?.user?.mobile}
|
|
</Typography>
|
|
<Typography>
|
|
شهر: {item?.killHouseOperator?.user?.city?.cityName}
|
|
</Typography>
|
|
<Typography>تعداد کل: {item?.totalQuantity}</Typography>
|
|
<Divider />
|
|
<Typography color="error" variant="subtitle1">
|
|
جزئیات سفارش
|
|
</Typography>
|
|
{item?.provinceKillRequest?.map((pkRequest, pkIndex) => (
|
|
<Box key={pkIndex} style={styles.innerBox}>
|
|
<Typography>مرغدار: {pkRequest?.poultry}</Typography>
|
|
<Typography>
|
|
تلفن مرغدار: {pkRequest?.poultryMobile}
|
|
</Typography>
|
|
<Typography>تعداد: {pkRequest?.quantity}</Typography>
|
|
<Typography>
|
|
میانگین وزن: {pkRequest?.IndexWeight}
|
|
</Typography>
|
|
</Box>
|
|
))}
|
|
</Box>
|
|
</Grid>
|
|
))}
|
|
{factorData?.payload?.data?.outProvince?.map((item, i) => (
|
|
<Grid key={i} xs={12} sm={3} lg={2}>
|
|
<Box style={styles.box}>
|
|
<Typography color="primary" variant="h6">
|
|
ردیف: {factorData?.payload?.data?.allocation.length + i + 1}
|
|
</Typography>
|
|
<Typography color="error" variant="subtitle1">
|
|
فروش خارج از استان
|
|
</Typography>
|
|
<Divider />
|
|
<Typography>
|
|
نام مرغدار: {item?.poultry?.unitName} (
|
|
{item?.poultry?.user?.mobile})
|
|
</Typography>
|
|
<Typography>
|
|
نام خریدار: {item?.buyer?.firstName} {item?.buyer?.lastName}
|
|
</Typography>
|
|
<Typography>تلفن: {item?.buyer?.mobile}</Typography>
|
|
<Typography>شهر: {item?.buyer?.city}</Typography>
|
|
<Typography>میانگین وزن: {item?.IndexWeight}</Typography>
|
|
<Typography>تعداد کل: {item?.quantity}</Typography>
|
|
<Typography>
|
|
نوع: {item?.freezing ? "انجماد" : "معمولی"}
|
|
</Typography>
|
|
</Box>
|
|
</Grid>
|
|
))}
|
|
</Grid>
|
|
</Grid>
|
|
<div
|
|
style={{
|
|
visibility: "hidden",
|
|
position: "absolute",
|
|
overflow: "hidden",
|
|
width: 0,
|
|
height: 0,
|
|
}}
|
|
>
|
|
<div style={{ width: "100%" }}>
|
|
<ProvinceSendLetterFactorReport
|
|
ref={componentRef}
|
|
sDate={moment(new Date()).format("YYYY-MM-DD")}
|
|
date={moment(new Date()).format("YYYY-MM-DD hh:mm:ss")}
|
|
fnumber={moment(new Date()).format("YYYYMMDD")}
|
|
receiver={
|
|
"معاونت محترم بهبود تولیدات دامی سازمان جهاد کشاورزی استان "
|
|
}
|
|
item={factorData?.payload?.data?.allocation}
|
|
itemOutProvince={factorData?.payload?.data?.outProvince}
|
|
/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</Box>
|
|
);
|
|
};
|
|
|
|
export default DownloadReport;
|