From a7ab626afcd67f8d166631bd8d015dc408e46668 Mon Sep 17 00:00:00 2001 From: Srinath Date: Tue, 3 Mar 2026 19:57:55 +0530 Subject: [PATCH] Implement dynamic header and table color functionality --- .../PurchasePrintTemplate/PurPrintstyle11.jsx | 271 ++++++++++++------ 1 file changed, 184 insertions(+), 87 deletions(-) diff --git a/src/Pages/PurchaseQuotation/PurchasePrintTemplate/PurPrintstyle11.jsx b/src/Pages/PurchaseQuotation/PurchasePrintTemplate/PurPrintstyle11.jsx index bd0e9c8..895e519 100644 --- a/src/Pages/PurchaseQuotation/PurchasePrintTemplate/PurPrintstyle11.jsx +++ b/src/Pages/PurchaseQuotation/PurchasePrintTemplate/PurPrintstyle11.jsx @@ -4,7 +4,18 @@ import { useDispatch, useSelector } from "react-redux"; import { GlobalPritdummyData, changeReprintDataFound, - GlobalprinttermsAndConditions + GlobalprinttermsAndConditions, + GlobalSelectedPrintHeaderColor, + GlobalSelectedPrintHeaderFontColor, + GlobalSelectedTableHeaderColor, + GlobalSelectedTableHeaderFontColor, + GlobalSelectedTableBodyColor, + GlobalSelectedTableBodyFontColor, + GlobalRowType, + GlobalSelectedFooterColor, + GlobalSelectedFooterFontColor, + GlobalSelectedNetAmountColor, + GlobalSelectedNetAmountFontColor, } from '../../../Features/ThemeChange/ThemeChange'; import "../../../Styles/BookingScreen/PrintTemplates/ThermalPrinter/PrintStyle11.scss"; import { extractLastNumber } from "../../../Services/Others"; @@ -29,11 +40,26 @@ const PurPrintStyle11 = ({ index, ExtraChargeTotal, Date1, base64Image, totalQua const Rate = FieldDetails?.["Rate"]; const Amount = FieldDetails?.["Amount"]; const HsnCode = FieldDetails?.["HsnCode"]; + 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 GlobaldummyData = useSelector(GlobalPritdummyData); + const GlobaldummyData = useSelector(GlobalPritdummyData); const GlobaltermsAndConditions = useSelector(GlobalprinttermsAndConditions); - + const SelectedHeaderColor = useSelector(GlobalSelectedPrintHeaderColor); + const SelectedHeaderFontColor = useSelector(GlobalSelectedPrintHeaderFontColor); + const SelectedTableHeaderColor = useSelector(GlobalSelectedTableHeaderColor); + const SelectedTableHeaderFontColor = useSelector(GlobalSelectedTableHeaderFontColor); + const SelectedTableBodyColor = useSelector(GlobalSelectedTableBodyColor); + const SelectedTableBodyFontColor = useSelector(GlobalSelectedTableBodyFontColor); + const SelectedRowType = useSelector(GlobalRowType); + const SelectedTableFooterColor = useSelector(GlobalSelectedFooterColor); + const SelectedTableFooterFontColor = useSelector(GlobalSelectedFooterFontColor); + const SelectedNetAmountColor = useSelector(GlobalSelectedNetAmountColor); + const SelectedNetAmountFontColor = useSelector(GlobalSelectedNetAmountFontColor); let TermsAndConditions = printDatas?.TermsandConditions let SignatureImg = printDatas?.Signature @@ -70,39 +96,85 @@ const PurPrintStyle11 = ({ index, ExtraChargeTotal, Date1, base64Image, totalQua } const lastChunkRows = paginatedChunks.length > 0 ? paginatedChunks[paginatedChunks.length - 1].length : 0; const shouldFooterBeOnNewPage = lastChunkRows > (PageSize == "A5" ? 5 : 10); + const headerStyle = { + backgroundColor: GlobaldummyData + ? SelectedHeaderColor + : headerColor?.background, + color: GlobaldummyData + ? SelectedHeaderFontColor + : headerColor?.font, + } + const tableHeaderStyle = { + backgroundColor: GlobaldummyData + ? SelectedTableHeaderColor + : tableHeaderColor?.background, + + color: GlobaldummyData + ? SelectedTableHeaderFontColor + : tableHeaderColor?.font, + } + const tableBodyStyle = { + backgroundColor: GlobaldummyData + ? SelectedTableBodyColor + : tableBodyColor?.background, + color: GlobaldummyData + ? SelectedTableBodyFontColor + : tableBodyColor?.font, + } + const rowtypeStyle = GlobaldummyData ? SelectedRowType : tableBodyColor?.rowType; + const footerColorStyle = { + backgroundColor: GlobaldummyData + ? SelectedTableFooterColor + : footerColor?.background, + + color: GlobaldummyData + ? SelectedTableFooterFontColor + : footerColor?.font, + } + const netAmountStyle = { + backgroundColor: GlobaldummyData + ? SelectedNetAmountColor + : netAmtColor?.background, + + color: GlobaldummyData + ? SelectedNetAmountFontColor + : netAmtColor?.font, + } return ( <> {FormatTheme ?
{paginatedChunks.map((dataChunk, chunkIndex) => (
0 ? ' print-page-break' : ''}`} style={{ display: "flex", flexDirection: "column", justifyContent: ((chunkIndex === paginatedChunks.length - 1) && (!shouldFooterBeOnNewPage)) && FormatTheme ? "space-between" : "", height: FormatTheme ? PageSize == "A5" ? '170mm' : "257mm" : "", }} key={chunkIndex}> {/*
*/} -
-
- {base64Image ? image : null} -
-
- { table2Data?.[0]?.BrName} +
+
+
+ {base64Image ? image : null} +
+
+ {table2Data?.[0]?.BrName} +
+
-
-
-
-
-
- { - (table2Data?.[0]?.AddressDetails?.[0]?.Address1 || '') + (table2Data?.[0]?.AddressDetails?.[0]?.City ? (table2Data?.[0]?.AddressDetails?.[0]?.Address1 && table2Data?.[0]?.AddressDetails?.[0]?.City ? '-' : '') + table2Data?.[0]?.AddressDetails?.[0]?.City : '') + (table2Data?.[0]?.AddressDetails?.[0]?.Zip ? (table2Data?.[0]?.AddressDetails?.[0]?.City && table2Data?.[0]?.AddressDetails?.[0]?.Zip ? '-' : '') + table2Data?.[0]?.AddressDetails?.[0]?.Zip : '')} +
+
+
+ { + (table2Data?.[0]?.AddressDetails?.[0]?.Address1 || '') + (table2Data?.[0]?.AddressDetails?.[0]?.City ? (table2Data?.[0]?.AddressDetails?.[0]?.Address1 && table2Data?.[0]?.AddressDetails?.[0]?.City ? '-' : '') + table2Data?.[0]?.AddressDetails?.[0]?.City : '') + (table2Data?.[0]?.AddressDetails?.[0]?.Zip ? (table2Data?.[0]?.AddressDetails?.[0]?.City && table2Data?.[0]?.AddressDetails?.[0]?.Zip ? '-' : '') + table2Data?.[0]?.AddressDetails?.[0]?.Zip : '')} +
+
MOBILE NO :{table2Data?.[0]?.BrMobile}
-
MOBILE NO :{table2Data?.[0]?.BrMobile}

{BillName}
@@ -111,28 +183,39 @@ const PurPrintStyle11 = ({ index, ExtraChargeTotal, Date1, base64Image, totalQua
-
- {(TakeawayData?.length > 0 ) && +
+ {(TakeawayData?.length > 0) && <> - {SLNO && } - {Item && } - {Quantity && } - { HsnCode && } - { MRP && } - { Discount && } - { Rate && } - { Amount && } + {SLNO && } + {Item && } + {Quantity && } + {HsnCode && } + {MRP && } + {Discount && } + {Rate && } + {Amount && } {dataChunk?.map((item, index) => { return ( - - { SLNO && } + + {SLNO && } {Item && } {MRP && } {Discount && } - { Rate && } - { Amount && } + {Rate && } + {Amount && } ) })} @@ -158,14 +241,14 @@ const PurPrintStyle11 = ({ index, ExtraChargeTotal, Date1, base64Image, totalQua
S.NItemQtyHSNMRPDis RateAmtS.NItemQtyHSNMRPDis RateAmt
{chunkIndex * chunkSize + index + 1}
{chunkIndex * chunkSize + index + 1}
{item?.ProdName}
({item?.Size ? item?.Size : "1"} {item?.SinglePc == 'Y' ? 'PCS' : item?.Type != "C" ? item?.UomName : "COMBO"}){item?.BrandName !== null ? item?.BrandName : ""}  @@ -149,8 +232,8 @@ const PurPrintStyle11 = ({ index, ExtraChargeTotal, Date1, base64Image, totalQua {HsnCode &&
{item?.HSN}{item?.SinglePc === 'Y' ? item?.Price : item?.MRP}{item?.Type != "C" ? item?.OfferAmt || 0 : item?.OfferValue || 0}{item?.Price}{item?.NetAmt?.toFixed(2)}{item?.Price}{item?.NetAmt?.toFixed(2)}
} - +
{((chunkIndex === paginatedChunks.length - 1) && (!shouldFooterBeOnNewPage)) && FormatTheme && <>
-
+
Qty
@@ -177,15 +260,15 @@ const PurPrintStyle11 = ({ index, ExtraChargeTotal, Date1, base64Image, totalQua
ROUND OFF
*/}
-
{ totalQuantity}
+
{totalQuantity}
{totalQuantityFilter?.length}
{(table2Data?.OverallDisc > 0 || TotalOfferAmount > 0) && -
{ Number(TotalOfferAmount + table2Data?.OverallDisc).toFixed(2)}
+
{Number(TotalOfferAmount + table2Data?.OverallDisc).toFixed(2)}
} - +
- +
Amount :{Number(table2Data?.[0]?.NetAmount).toFixed(2)}/-
@@ -317,23 +400,23 @@ const PurPrintStyle11 = ({ index, ExtraChargeTotal, Date1, base64Image, totalQua
- +
- - + + {table2Data?.CustSuppName && table2Data?.CustSuppName !== undefined && table2Data?.CustSuppName !== null && !GlobaldummyData &&
Customer : {table2Data?.CustSuppName}
} - +
{Date1}
- +

@@ -344,6 +427,7 @@ const PurPrintStyle11 = ({ index, ExtraChargeTotal, Date1, base64Image, totalQua pageBreakBefore: "avoid", pageBreakInside: "avoid", minHeight: "auto", + ...footerColorStyle }} > { @@ -368,7 +452,7 @@ const PurPrintStyle11 = ({ index, ExtraChargeTotal, Date1, base64Image, totalQua
) } - { Signature == true && (
+ {Signature == true && (

Signature

)} @@ -376,7 +460,7 @@ const PurPrintStyle11 = ({ index, ExtraChargeTotal, Date1, base64Image, totalQua
- + } @@ -406,7 +490,7 @@ const PurPrintStyle11 = ({ index, ExtraChargeTotal, Date1, base64Image, totalQua <>
-
+
Qty
@@ -427,7 +511,7 @@ const PurPrintStyle11 = ({ index, ExtraChargeTotal, Date1, base64Image, totalQua {/*
{GlobaldummyData ? '1,066' : Number(table2Data?.NetAmount).toFixed(2) ? Number(table2Data?.NetAmount).toFixed(2) : 0}
*/}
- +
Amount :{Number(table2Data?.[0]?.NetAmount).toFixed(2)}/-
@@ -560,19 +644,19 @@ const PurPrintStyle11 = ({ index, ExtraChargeTotal, Date1, base64Image, totalQua
- +
- - + + {table2Data?.CustSuppName && table2Data?.CustSuppName !== undefined && table2Data?.CustSuppName !== null && !GlobaldummyData &&
Customer : {table2Data?.CustSuppName}
} - +
{Date1}
@@ -598,6 +682,7 @@ const PurPrintStyle11 = ({ index, ExtraChargeTotal, Date1, base64Image, totalQua pageBreakBefore: "avoid", pageBreakInside: "avoid", minHeight: "auto", + ...footerColorStyle }} > {GlobaldummyData ? GlobalIsnotes && @@ -648,7 +733,7 @@ const PurPrintStyle11 = ({ index, ExtraChargeTotal, Date1, base64Image, totalQua
- +
@@ -658,7 +743,7 @@ const PurPrintStyle11 = ({ index, ExtraChargeTotal, Date1, base64Image, totalQua :
-
+
{base64Image ? image : null}

-
+
{GlobaldummyData ? 'BranchAddress, Town- 635XXX City - State' : @@ -693,21 +778,32 @@ const PurPrintStyle11 = ({ index, ExtraChargeTotal, Date1, base64Image, totalQua - {SLNO && } - {Item && } - {Quantity && } - { HsnCode && } - { MRP && } - { Discount && } - { Rate && } - { Amount && } + {SLNO && } + {Item && } + {Quantity && } + {HsnCode && } + {MRP && } + {Discount && } + {Rate && } + {Amount && } - {( TakeawayData)?.map((item, index) => { + {(TakeawayData)?.map((item, index) => { return ( - - { SLNO && } + + {SLNO && } {Item && } {Quantity && } {HsnCode && } - { MRP && } - { Discount && } - { Rate && } - { Amount && } + {MRP && } + {Discount && } + {Rate && } + {Amount && } ) })} @@ -733,10 +829,10 @@ const PurPrintStyle11 = ({ index, ExtraChargeTotal, Date1, base64Image, totalQua
S.NItemQtyHSNMRPDis RateAmtS.NItemQtyHSNMRPDis RateAmt
{index + 1}
{index + 1}
{item?.ProdName}
({item?.Size ? item?.Size : "1"} {item?.SinglePc == 'Y' ? 'PCS' : item?.Type != "C" ? item?.UomName : "COMBO"}){item?.BrandName !== null ? item?.BrandName : ""}  @@ -722,10 +818,10 @@ const PurPrintStyle11 = ({ index, ExtraChargeTotal, Date1, base64Image, totalQua
{item?.Qty}{item?.HSN}{item?.SinglePc === 'Y' ? item?.Price : item?.MRP}{item?.Type != "C" ? item?.OfferAmt || 0 : item?.OfferValue || 0}{item?.Price}{item?.NetAmt?.toFixed(2)}{item?.SinglePc === 'Y' ? item?.Price : item?.MRP}{item?.Type != "C" ? item?.OfferAmt || 0 : item?.OfferValue || 0}{item?.Price}{item?.NetAmt?.toFixed(2)}
} - +
-
+
Qty
@@ -753,10 +849,10 @@ const PurPrintStyle11 = ({ index, ExtraChargeTotal, Date1, base64Image, totalQua {(table2Data?.OverallDisc > 0 || TotalOfferAmount > 0) &&
{Number(TotalOfferAmount + table2Data?.OverallDisc).toFixed(2)}
} - +
- +
Amount :{Number(table2Data?.[0]?.NetAmount).toFixed(2)}/-
@@ -888,24 +984,24 @@ const PurPrintStyle11 = ({ index, ExtraChargeTotal, Date1, base64Image, totalQua
- -
- -
- - +
+ +
+ + + {table2Data?.CustSuppName && table2Data?.CustSuppName !== undefined && table2Data?.CustSuppName !== null && !GlobaldummyData &&
Customer : {table2Data?.CustSuppName}
} - +
{Date1}
- +

@@ -916,6 +1012,7 @@ const PurPrintStyle11 = ({ index, ExtraChargeTotal, Date1, base64Image, totalQua pageBreakBefore: "avoid", pageBreakInside: "avoid", minHeight: "auto", + ...footerColorStyle }} > { @@ -948,7 +1045,7 @@ const PurPrintStyle11 = ({ index, ExtraChargeTotal, Date1, base64Image, totalQua
- +