import { Typography } from "@mui/material";
import { Grid } from "../../../../components/grid/Grid";
import { SPACING } from "../../../../data/spacing";

const styles = {
  tableInNewPage: {
    pageBreakAfter: "always",
    paddingLeft: "40px",
    paddingRight: "40px",
    direction: "rtl",
    fontFamily: "titr",
    fontWeight: "bold",
  },
  container: {
    width: "95%",
    alignSelf: "center",
    pageBreakInside: "avoid",
  },

  invoiceTable: {
    width: "100%",
    borderCollapse: "collapse",
    alignSelf: "center",
    fontFamily: "titr",
    marginBottom: "5px",
    marginTop: "15px",
    borderRadius: "10px",
  },
  tableCell: {
    border: "1px solid #000",
    pAlign: "left",
    textAlign: "center",
    fontSize: 12,
    fontWeight: "bolder",
    color: "#403e3e",
  },
  tableCellGreen: {
    border: "1px solid #000",
    pAlign: "left",
    textAlign: "center",
    fontSize: 12,
    color: "white",
    fontWeight: "bolder",
    backgroundColor: "rgba(26, 188, 156, 0.7)",
  },
  tableCellMobile: {
    border: "1px solid #000",
    pAlign: "left",
    textAlign: "center",
    fontSize: 12,
  },
  tableInnerCell: {
    border: "1px solid #000",
    pAlign: "left",
    textAlign: "center",
    fontSize: 9,
    whiteSpace: "nowrap",
  },
  tableHeader: {
    backgroundColor: "rgba(211, 211, 211, 0.3)",
    pageBreakAfter: "auto",
  },
  headerRow: {
    background: "linear-gradient(to right, #E684AE, #79CBCA, #77A1D3)",
    backgroundColor: "rgba(232, 67, 147, 0.4)",
    color: "#422020",
    pageBreakInside: "avoid",
    pageBreakAfter: "auto",
  },

  tableHeaderCell: {
    fontSize: 14,
    border: "1px solid #000",
    padding: "4px",
    textAlign: "center",
    fontWeight: "bolder",
  },
  tableHeaderCellGreen: {
    backgroundColor: "rgba(26, 188, 156, 0.7)",
    fontSize: 12,
    border: "1px solid #000",
    padding: "4px",
    textAlign: "center",
    fontWeight: "bolder",
    color: "white",
  },
  footer: {
    left: 0,
    bottom: 0,
    width: "100%",
    position: "absolute",
  },
  footerContainer: {
    alignItems: "center",
    display: "flex",
  },

  tableRowEven: {
    backgroundColor: "rgba(170, 183, 255, 0.3)",
  },
  titleOfTable: {
    marginRight: "20px",
    fontSize: "15px",
  },
  tableCellAlert: {
    border: "1px solid #000",
    pAlign: "left",
    textAlign: "center",
    fontSize: 12,
    color: "red",
  },
  levelDetails: {
    color: "red",
    fontSize: 12,
  },
};

export const TableCityLevel = ({ item }) => {
  return (
    <Grid mt={SPACING.SMALL}>
      <Typography variant={"body2"}>مرحله شهرستان</Typography>
      <table style={styles.invoiceTable}>
        <thead style={styles.tableHeader}>
          <tr style={styles.headerRow}>
            <th style={styles.tableHeaderCell}>اپراتور</th>
            <th style={styles.tableHeaderCell}>سمت</th>
            <th style={styles.tableHeaderCell}>تلفن</th>
            <th style={styles.tableHeaderCell}>تعاونی مرغدار</th>
            <th style={styles.tableHeaderCell}>آدرس</th>
            <th style={styles.tableHeaderCell}>وضعیت</th>
          </tr>
        </thead>
        {item?.cityState?.date ? (
          <tbody>
            <tr style={styles.tableRow}>
              <td style={styles.tableCell}>
                {item?.cityState?.cityOperatorFullname}
              </td>
              <td style={styles.tableCell}>اپراتور شهرستان</td>
              <td style={styles.tableCell}>
                {item?.cityState?.cityOperatorMobile}
              </td>
              <td style={styles.tableCell}>{item?.cityState?.poultry}</td>
              <td style={styles.tableCell}>
                {item?.cityState?.province + " - " + item?.cityState?.city}
              </td>
              <td style={styles.tableCell}>
                {item?.cityState?.state === "accept" ? "تایید شده" : "رد شده"}
              </td>
            </tr>
          </tbody>
        ) : (
          <td style={styles.tableCellAlert} colSpan={6}>
            هنوز شهرستان پرونده را تائید نکرده است
          </td>
        )}
      </table>
    </Grid>
  );
};

export const TableProvinceLevel = ({ item }) => {
  return (
    <Grid mt={SPACING.SMALL}>
      <Typography variant={"body2"}>مرحله استان</Typography>
      <table style={styles.invoiceTable}>
        <thead style={styles.tableHeader}>
          <tr style={styles.headerRow}>
            <th style={styles.tableHeaderCell}>اپراتور</th>
            <th style={styles.tableHeaderCell}>سمت</th>
            <th style={styles.tableHeaderCell}>تلفن</th>
            <th style={styles.tableHeaderCell}>تعاونی مرغدار</th>
            <th style={styles.tableHeaderCell}>آدرس</th>
            <th style={styles.tableHeaderCell}>وضعیت</th>
          </tr>
        </thead>
        {item?.provinceState?.date ? (
          <tbody>
            <tr style={styles.tableRow}>
              <td style={styles.tableCell}>
                {item?.provinceState?.provinceOperatorFullname}
              </td>
              <td style={styles.tableCell}>اپراتور استان</td>
              <td style={styles.tableCell}>
                {item?.provinceState?.provinceOperatorMobile}
              </td>
              <td style={styles.tableCell}>{item?.provinceState?.poultry}</td>
              <td style={styles.tableCell}>
                {item?.provinceState?.province +
                  " - " +
                  item?.provinceState?.city}
              </td>
              <td style={styles.tableCell}>
                {item?.provinceState?.state === "accept"
                  ? "تایید شده"
                  : "رد شده"}
              </td>
            </tr>
          </tbody>
        ) : (
          <td style={styles.tableCellAlert} colSpan={6}>
            هنوز استان پرونده را تائید نکرده است
          </td>
        )}
      </table>
    </Grid>
  );
};

export const TableSalughterAllocationLevel = ({ item }) => {
  return (
    <Grid mt={SPACING.SMALL}>
      <Typography variant={"body2"}>
        مرحله تخصیص به خریدار {" ( "}
        <span style={styles.levelDetails}>
          تعداد درخواست:{" "}
          {item?.provinceKillRequests?.provinceKillRequestsTotalInfo?.poultryRequestQuantity.toLocaleString()}
          ، تعداد تخصیصی به کشتارگاه:{" "}
          {item?.provinceKillRequests?.provinceKillRequestsTotalInfo?.allocatedQuantity.toLocaleString()}
          ، مانده قابل تخصیصی:{" "}
          {item?.provinceKillRequests?.provinceKillRequestsTotalInfo?.poultryRequestRemainQuantity.toLocaleString()}
        </span>
        {" ) "}
      </Typography>
      <table style={styles.invoiceTable}>
        <thead style={styles.tableHeader}>
          <tr style={styles.headerRow}>
            <th style={styles.tableHeaderCell}>ردیف</th>
            <th style={styles.tableHeaderCell}>ماهیت خریدار</th>
            <th style={styles.tableHeaderCell}>خریدار</th>
            <th style={styles.tableHeaderCell}>نوع تخصیص</th>
            <th style={styles.tableHeaderCell}>تعداد تخصیصی</th>
            <th style={styles.tableHeaderCell}>میانگین وزن</th>
            <th style={styles.tableHeaderCell}>وزن تخصیصی</th>
            <th style={styles.tableHeaderCell}>وضعیت</th>
          </tr>
        </thead>
        {item?.provinceKillRequests?.provinceKillRequestSerializer ? (
          <tbody>
            {item?.provinceKillRequests?.provinceKillRequestSerializer.map(
              (item, i) => (
                <tr key={i} style={styles.tableRow}>
                  <td style={styles.tableCell}>{i + 1}</td>
                  <td style={styles.tableCell}>
                    {item?.killhouseUser?.killer === false
                      ? "کشتارگاه"
                      : "کشتارکن"}
                  </td>
                  <td style={styles.tableCell}>
                    {`${item?.killhouseUser?.killHouseOperator?.user?.fullname} (${item?.killhouseUser?.killHouseOperator?.user?.mobile})`}
                  </td>
                  <td style={styles.tableCell}>
                    {item?.automatic === false ? "دستی" : "اتوماتیک"}
                  </td>
                  <td style={styles.tableCell}>
                    {item?.weightInfo?.provinceKillRequestQuantity}
                  </td>
                  <td style={styles.tableCell}>
                    {item?.weightInfo?.provinceKillRequestIndexWeight}
                  </td>
                  <td style={styles.tableCell}>
                    {item?.weightInfo?.provinceKillRequestWeight}
                  </td>
                  <td style={styles.tableCell}>
                    {item?.state === "accepted"
                      ? "تایید شده"
                      : item?.state === "rejected"
                      ? "رد شده"
                      : "در انتظار تایید"}
                  </td>
                </tr>
              )
            )}
          </tbody>
        ) : (
          <td style={styles.tableCellAlert} colSpan={8}>
            داده ای ثبت نشده!
          </td>
        )}
      </table>
    </Grid>
  );
};

export const TableSlaughterAddCar = ({ item }) => {
  return (
    <Grid mt={SPACING.SMALL}>
      <Typography variant={"body2"}>
        مرحله ایجاد بار
        {" ( "}
        <span style={styles.levelDetails}>
          تعداد تخصیص به خریداران:{" "}
          {item?.killHouseRequests?.allocatedQuantity?.toLocaleString()}، تعداد
          بارها: {item?.killHouseRequests?.numberOfBars?.toLocaleString()}،
          تعداد تخصیص به ماشین:{" "}
          {item?.killHouseRequests?.killHouseRequestQuantity?.toLocaleString()}،
          مانده قابل تخصیص:{" "}
          {item?.killHouseRequests?.remainQuantity?.toLocaleString()}
        </span>
        {" ) "}
      </Typography>
      <table style={styles.invoiceTable}>
        <thead style={styles.tableHeader}>
          <tr style={styles.headerRow}>
            <th style={styles.tableHeaderCell}>ردیف</th>
            <th style={styles.tableHeaderCell}>کد بار</th>
            <th style={styles.tableHeaderCell}>خریدار</th>
            <th style={styles.tableHeaderCell}>ماشین</th>
            <th style={styles.tableHeaderCell}>راننده</th>
            <th style={styles.tableHeaderCell}>تعداد</th>
            <th style={styles.tableHeaderCell}>وزن بار</th>
            <th style={styles.tableHeaderCell}>میانگین وزن</th>
            <th style={styles.tableHeaderCell}>کد قرنطینه</th>
            <th style={styles.tableHeaderCell}>محل کشتار</th>
          </tr>
        </thead>
        {item?.killHouseRequests?.killHouseRequestsSerializer ? (
          <tbody>
            {item?.killHouseRequests?.killHouseRequestsSerializer.map(
              (item, i) => (
                <tr key={i} style={styles.tableRow}>
                  <td style={styles.tableCell}>{i + 1}</td>
                  <td style={styles.tableCell}>{item?.barCode}</td>
                  <td style={styles.tableCell}>
                    {`${item?.killhouseUser?.killHouseOperator?.user?.fullname} (${item?.killhouseUser?.killHouseOperator?.user?.mobile})`}
                  </td>
                  <td
                    style={styles.tableCell}
                  >{`${item?.addCar?.driver?.typeCar} (${item?.addCar?.driver?.pelak})`}</td>
                  <td
                    style={styles.tableCell}
                  >{`${item?.addCar?.driver?.driverName} (${item?.addCar?.driver?.driverMobile})`}</td>
                  <td style={styles.tableCell}>
                    {item?.quantity.toLocaleString()}
                  </td>
                  <td style={styles.tableCell}>{item?.weightInfo?.weight}</td>
                  <td style={styles.tableCell}>
                    {item?.weightInfo?.indexWeight}
                  </td>
                  <td style={styles.tableCell}>{item?.clearanceCode}</td>
                  <td style={styles.tableCell}>{item?.killPlace}</td>
                </tr>
              )
            )}
          </tbody>
        ) : (
          <td style={styles.tableCellAlert} colSpan={10}>
            داده ای ثبت نشده!
          </td>
        )}
      </table>
    </Grid>
  );
};

export const TableSVetAcceptDischarge = ({ item }) => {
  return (
    <Grid mt={SPACING.SMALL}>
      <Typography variant={"body2"}>
        مرحله تخلیه بار
        {" ( "}
        <span style={styles.levelDetails}>
          تعداد بارها: {item?.killHouseRequests?.numberOfBars?.toLocaleString()}
          ، تایید تخلیه:{" "}
          {item?.killHouseRequests?.vetAcceptedNumberOfBars?.toLocaleString()}،
          تخلیه نشده:{" "}
          {item?.killHouseRequests?.vetRemainNumberOfBars?.toLocaleString()}
        </span>
        {" ) "}
      </Typography>
      <table style={styles.invoiceTable}>
        <thead style={styles.tableHeader}>
          <tr style={styles.headerRow}>
            <th style={styles.tableHeaderCell}>ردیف</th>
            <th style={styles.tableHeaderCell}>کد بار</th>
            <th style={styles.tableHeaderCell}>خریدار</th>
            <th style={styles.tableHeaderCell}>ماشین</th>
            <th style={styles.tableHeaderCell}>راننده</th>
            <th style={styles.tableHeaderCell}>تعداد</th>
            <th style={styles.tableHeaderCell}>وزن بار</th>
            <th style={styles.tableHeaderCell}>میانگین وزن</th>
            <th style={styles.tableHeaderCell}>کد قرنطینه</th>
            <th style={styles.tableHeaderCell}>تعداد تخلیه شده </th>
            <th style={styles.tableHeaderCell}>وزن تخلیه شده </th>
            <th style={styles.tableHeaderCell}>وضعیت</th>
            <th style={styles.tableHeaderCell}>اطلاعات تخلیه</th>
          </tr>
        </thead>
        {item?.killHouseRequests?.killHouseRequestVetCheckSerializer.length ? (
          <tbody>
            {item?.killHouseRequests?.killHouseRequestVetCheckSerializer.map(
              (item, i) => (
                <tr key={i} style={styles.tableRow}>
                  <td style={styles.tableCell}>{i + 1}</td>
                  <td style={styles.tableCell}>{item?.barCode}</td>
                  <td style={styles.tableCell}>
                    {`${item?.killhouseUser?.killHouseOperator?.user?.fullname} (${item?.killhouseUser?.killHouseOperator?.user?.mobile})`}
                  </td>
                  <td
                    style={styles.tableCell}
                  >{`${item?.addCar?.driver?.typeCar} (${item?.addCar?.driver?.pelak})`}</td>
                  <td
                    style={styles.tableCell}
                  >{`${item?.addCar?.driver?.driverName} (${item?.addCar?.driver?.driverMobile})`}</td>
                  <td style={styles.tableCell}>
                    {item?.quantity.toLocaleString()}
                  </td>
                  <td style={styles.tableCell}>{item?.weightInfo?.weight}</td>
                  <td style={styles.tableCell}>
                    {item?.weightInfo?.indexWeight}
                  </td>
                  <td style={styles.tableCell}>{item?.clearanceCode}</td>
                  <td style={styles.tableCell}>
                    {item?.vetAcceptedRealQuantity?.toLocaleString()}
                  </td>
                  <td style={styles.tableCell}>
                    {item?.vetAcceptedRealWeight?.toLocaleString()}
                  </td>
                  <td style={styles.tableCell}>
                    {item?.vetState === "accepted"
                      ? "تخلیه شده"
                      : "در انتظار تخلیه"}
                  </td>
                  <td style={styles.tableCell}>
                    {item?.vetState === "accepted"
                      ? `${item?.killHouseVet?.fullname} (${item?.killHouseVet?.mobile})`
                      : "-"}
                  </td>
                </tr>
              )
            )}
          </tbody>
        ) : (
          <td style={styles.tableCellAlert} colSpan={13}>
            تخلیه بار تایید نشده است.
          </td>
        )}
      </table>
    </Grid>
  );
};

export const TableSlaughterInputBarData = ({ item }) => {
  return (
    <Grid mt={SPACING.SMALL}>
      <Typography variant={"body2"}>اطلاعات بار</Typography>
      <table style={styles.invoiceTable}>
        <thead style={styles.tableHeader}>
          <tr style={styles.headerRow}>
            <th style={styles.tableHeaderCell}>ردیف</th>
            <th style={styles.tableHeaderCell}>کد بار</th>
            <th style={styles.tableHeaderCell}>خریدار</th>
            <th style={styles.tableHeaderCell}>ماشین</th>
            <th style={styles.tableHeaderCell}>راننده</th>
            <th style={styles.tableHeaderCell}>تعداد</th>
            <th style={styles.tableHeaderCell}>وزن بار</th>
            <th style={styles.tableHeaderCell}>میانگین وزن</th>
            <th style={styles.tableHeaderCell}>کد قرنطینه</th>
            <th style={styles.tableHeaderCell}>تعداد تخلیه شده (دامپزشک)</th>
            <th style={styles.tableHeaderCell}>وزن تخلیه شده (دامپزشک)</th>
            <th style={styles.tableHeaderCell}>تعداد نهایی</th>
            <th style={styles.tableHeaderCell}>وزن خالص واقعی</th>
          </tr>
        </thead>
        {item?.killHouseRequests?.killHouseRequestAssignmentSerializer ? (
          <tbody>
            {item?.killHouseRequests?.killHouseRequestAssignmentSerializer.map(
              (item, i) => (
                <tr key={i} style={styles.tableRow}>
                  <td style={styles.tableCell}>{i + 1}</td>
                  <td style={styles.tableCell}>{item?.barCode}</td>
                  <td style={styles.tableCell}>
                    {`${item?.killhouseUser?.killHouseOperator?.user?.fullname} (${item?.killhouseUser?.killHouseOperator?.user?.mobile})`}
                  </td>
                  <td
                    style={styles.tableCell}
                  >{`${item?.addCar?.driver?.typeCar} (${item?.addCar?.driver?.pelak})`}</td>
                  <td
                    style={styles.tableCell}
                  >{`${item?.addCar?.driver?.driverName} (${item?.addCar?.driver?.driverMobile})`}</td>
                  <td style={styles.tableCell}>
                    {item?.quantity.toLocaleString()}
                  </td>
                  <td style={styles.tableCell}>{item?.weightInfo?.weight}</td>
                  <td style={styles.tableCell}>
                    {item?.weightInfo?.indexWeight}
                  </td>
                  <td style={styles.tableCell}>{item?.clearanceCode}</td>
                  <td style={styles.tableCell}>
                    {item?.vetAcceptedRealQuantity?.toLocaleString()}
                  </td>
                  <td style={styles.tableCell}>
                    {item?.vetAcceptedRealWeight?.toLocaleString()}
                  </td>
                  <td style={styles.tableCell}>
                    {item?.acceptedRealQuantity?.toLocaleString()}
                  </td>{" "}
                  <td style={styles.tableCell}>
                    {item?.acceptedRealWeight?.toLocaleString()}
                  </td>
                </tr>
              )
            )}
          </tbody>
        ) : (
          <td style={styles.tableCellAlert} colSpan={13}>
            داده ای ثبت نشده!
          </td>
        )}
      </table>
    </Grid>
  );
};

export const TableSlaughterFinanceInfo = ({ item }) => {
  return (
    <table style={styles.invoiceTable}>
      <thead style={styles.tableHeader}>
        <tr style={styles.headerRow}>
          <th style={styles.tableHeaderCell}>ردیف</th>
          <th style={styles.tableHeaderCell}>کد بار</th>
          <th style={styles.tableHeaderCell}>خریدار</th>
          <th style={styles.tableHeaderCell}>ماشین</th>
          <th style={styles.tableHeaderCell}>راننده</th>
          <th style={styles.tableHeaderCell}>نژاد</th>
          <th style={styles.tableHeaderCell}>کد قرنطینه</th>
          <th style={styles.tableHeaderCell}>تعداد نهایی</th>
          <th style={styles.tableHeaderCell}>وزن خالص بار</th>
          <th style={styles.tableHeaderCell}>میانگین وزن</th>
          <th style={styles.tableHeaderCell}>مبلغ فاکتور</th>
          <th style={styles.tableHeaderCell}>وضعیت</th>
          <th style={styles.tableHeaderCell}>اطلاعات پرداخت (شناسه پرداخت)</th>
        </tr>
      </thead>
      {item?.provinceState?.date && (
        <tbody>
          <tr style={styles.tableRow}>
            {/* <td style={styles.tableCell}>
                {item?.provinceState?.provinceOperatorFullname}
              </td> */}
          </tr>
        </tbody>
      )}
    </table>
  );
};

export const TableInspector = ({ item }) => {
  return (
    <table style={styles.invoiceTable}>
      <thead style={styles.tableHeader}>
        <tr style={styles.headerRow}>
          <th style={styles.tableHeaderCell}>ردیف</th>
          <th style={styles.tableHeaderCell}>کد بار</th>
          <th style={styles.tableHeaderCell}>خریدار</th>
          <th style={styles.tableHeaderCell}>ماشین</th>
          <th style={styles.tableHeaderCell}>راننده</th>
          <th style={styles.tableHeaderCell}>نژاد</th>
          <th style={styles.tableHeaderCell}>کد قرنطینه</th>
          <th style={styles.tableHeaderCell}>تعداد نهایی</th>
          <th style={styles.tableHeaderCell}>وزن خالص بار</th>
          <th style={styles.tableHeaderCell}>میانگین وزن</th>
          <th style={styles.tableHeaderCell}>مبلغ فاکتور</th>
          <th style={styles.tableHeaderCell}>وضعیت پرداخت</th>
          <th style={styles.tableHeaderCell}>وضعیت</th>
          <th style={styles.tableHeaderCell}>نظر بازرس</th>
        </tr>
      </thead>
      {item?.provinceState?.date && (
        <tbody>
          <tr style={styles.tableRow}>
            {/* <td style={styles.tableCell}>
                {item?.provinceState?.provinceOperatorFullname}
              </td> */}
          </tr>
        </tbody>
      )}
    </table>
  );
};
