import React, { useMemo } from "react";
import { useSelector } from "react-redux";
import { GloabalDCtoInvoiceFieldDetails, GloabalFieldDetails } from "../../../Features/ThemeChange/ThemeChange";
import { dateFormatChange1 } from "../../../Services/Others";
const PrintStyleDCToInvoiceA4Standard = ({ invoiceData, preference, printDatas }) => {
const {
InvoiceNo,
DCNo,
InvoiceDate,
CustMobile,
GrandTotal,
TaxAmount,
TotalAmount,
ProductDetails,
AddressDetails,
CustName,
VehicleNo
} = invoiceData;
console.log(invoiceData, "invoiceData")
const fieldDetails = useSelector(GloabalDCtoInvoiceFieldDetails);
const signature = fieldDetails?.["signature"];
const termsAndConditions = fieldDetails?.["terms&conditions"];
const termsAndConditionsData = printDatas?.TermsandConditions;
const signatureImg = printDatas?.Signature;
const notesText = printDatas?.Notes;
const formatTheme = printDatas?.PrintType === "S";
const pageSize = printDatas?.PageSize;
const branch = AddressDetails[0];
const bankDetails = branch?.BankDetails;
console.log(branch, "branchbranch")
const logo = branch?.CompLogo;
const printGreeting = preference?.[0]?.SettingDtlDetails?.find(
(i) => i.SettingIdName === 'PrintGreetings'
);
const chunkSize = pageSize === "A5" ? 8 : 11;
const paginatedChunks = useMemo(() => {
const chunks = [];
for (let i = 0; i < ProductDetails.length; i += chunkSize) {
chunks.push(ProductDetails.slice(i, i + chunkSize));
}
return chunks;
}, [ProductDetails, chunkSize]);
const lastChunkRows = paginatedChunks.at(-1)?.length || 0;
const shouldFooterBeOnNewPage = lastChunkRows > (pageSize === "A5" ? 5 : 10);
let printColors = printDatas?.PrintColors;
const headerColor = printColors?.find(obj => obj.headerColor)?.headerColor;
const tableHeaderColor = printColors?.find(obj => obj.tableHeaderColor)?.tableHeaderColor;
const tableBodyColor = printColors?.find(obj => obj.tableBodyColor)?.tableBodyColor;
const footerColor = printColors?.find(obj => obj.footerColor)?.footerColor;
const netAmtColor = printColors?.find(obj => obj.netAmtColor)?.netAmtColor;
const headerStyle = {
backgroundColor: headerColor?.background,
color: headerColor?.font,
}
const tableHeaderStyle = {
backgroundColor: tableHeaderColor?.background,
color: tableHeaderColor?.font,
}
const tableBodyStyle = {
backgroundColor: tableBodyColor?.background,
color: tableBodyColor?.font,
}
const rowtypeStyle = tableBodyColor?.rowType;
const footerColorStyle = {
backgroundColor: footerColor?.background,
color: footerColor?.font,
}
const netAmountStyle = {
backgroundColor: netAmtColor?.background,
color: netAmtColor?.font,
}
const getPageStyle = (isFinalFooterPage) => ({
display: "flex",
flexDirection: "column",
justifyContent: isFinalFooterPage ? "space-between" : "",
height: pageSize === "A5" ? "170mm" : "95vh",
maxHeight: "97vh"
});
const HeaderSection = () => (
<>
Terms & Conditions
Authorised Signatory
(Common Seal)
{notesText}
} {printGreeting?.SettingValue === "Y" && (Total Invoice Amount in Words:
{numberToWords(amount)}
| {col.label} | ))}||||||
|---|---|---|---|---|---|---|
| {index + 1} | {prod.ProdName} | {prod.ProdVariantName} | {prod.Qty} | {prod.ProductRate} | {prod.TaxAmount} | {prod.TotalAmount} |