import React from 'react'; import { useDispatch, useSelector } from 'react-redux'; import QrImage from '../../../../Images/QRcode.png'; import { extractLastNumber, extractLastNumberOrderId, } from '../../../../Services/Others'; import { GlobalprintSlNo, GlobalprintItem, GlobalprintMRP, GlobalprintDiscount, GlobalprintQuantity, GlobalprintRate, GlobalprintAmount, GlobalprintHsnCode, GlobalprintQrcodet, GlobalPritdummyData, changeReprintDataFound, GloabalFieldDetails, GlobalprintSignature, GlobalprinttermsAndConditions, GlobalSignatureImage, Globalnotes, GlobalthemeFormat, GlobalBillName, GlobalSelectedPrintHeaderColor, GlobalSelectedPrintHeaderFontColor, GlobalSelectedTableHeaderColor, GlobalSelectedTableHeaderFontColor, GlobalSelectedTableBodyColor, GlobalSelectedTableBodyFontColor, GlobalRowType, GlobalSelectedFooterColor, GlobalSelectedFooterFontColor, } from '../../../../Features/ThemeChange/ThemeChange'; import { GlobalUpiIDprint } from '../../../../Features/BookingScreen/BookingData/BookingData'; import '../../../../Styles/BookingScreen/PrintTemplates/ThermalPrinter/PrintStyle8.scss'; import QRCode from 'react-qr-code'; import signature from '../../../../Images/signatureimage.jpg'; import { ApplicationPreferences } from '../../../../Features/BrachLogin/BranchLogin'; import { isMobile } from 'react-device-detect'; const DCPrintstyle8 = ({ BranchName, BranchDetails, BranchAddress, BranchCity, BranchZip, Date1, table2Data, PaymentStatus, PrintGreeting, printDatas, DCPrintTemplateDtl, }) => { const formatDate = (dateString = '') => { const date = new Date(dateString); const day = date.getDate().toString().padStart(2, '0'); const months = [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec', ]; const month = months[date.getMonth()]; const year = date.getFullYear(); return day && month && year ? `${day}-${month}-${year}` : '-'; }; const dispatch = useDispatch(); let FieldDetails = DCPrintTemplateDtl?.FieldDetails?.reduce((acc, item) => { acc[item.ConfigName] = true; return acc; }, {}); const SLNO = FieldDetails?.['Sl.No']; const Item = FieldDetails?.['Item']; const Discount = FieldDetails?.['Discount']; const Quantity = FieldDetails?.['Quantity']; const GlobalSlNo = useSelector(GlobalprintSlNo); const GlobalItem = useSelector(GlobalprintItem); const GlobalDiscount = useSelector(GlobalprintDiscount); const GlobalQuantity = useSelector(GlobalprintQuantity); const GlobaldummyData = useSelector(GlobalPritdummyData); const GlobalSignature = useSelector(GlobalprintSignature); const GlobaltermsAndConditions = useSelector(GlobalprinttermsAndConditions); const GlobalSignatureImages = useSelector(GlobalSignatureImage); const GlobalIsnotes = useSelector(Globalnotes); console.log(GlobalDiscount, Discount, 'Discount'); let TermsAndConditions = DCPrintTemplateDtl?.TermsandConditions; let SignatureImg = DCPrintTemplateDtl?.Signature; let Notestext = DCPrintTemplateDtl?.Notes; let BillName = DCPrintTemplateDtl?.PrintHdrName; let FormatTheme = DCPrintTemplateDtl?.PrintType == 'S' ? true : false; let PageSize = DCPrintTemplateDtl?.PageSize; const Signature = FieldDetails?.['signature']; const TermsnAdCondition = FieldDetails?.['terms&conditions']; const keysLength = Object.keys(table2Data ?? {}).length; if (keysLength > 0) { dispatch(changeReprintDataFound(true)); } const productsData = table2Data?.productDetails || []; const offers = table2Data?.OrderOfferDetails || []; let TotalOfferAmount = 0; // Calculate SalesWiseOffers total amount offers.forEach((offer) => { if (offer.TableName === 'SalesWiseOffers') { TotalOfferAmount += offer.OfferAmount; } }); const hasMappedOffer = offers.some((offer) => ['ItemWiseOffers', 'BundleOffers', 'QuantityWiseOffers'].includes( offer.TableName ) ); if (hasMappedOffer) { const productTotal = productsData?.reduce( (acc, item) => acc + (item?.Type != 'C' ? item.OfferAmt : item.OfferValue || 0), 0 ); TotalOfferAmount += productTotal; } else { const Combothere = productsData?.filter((item) => item?.Type == 'C'); const CombothereTotal = Combothere?.reduce( (acc, item) => acc + (item.OfferValue || 0), 0 ); TotalOfferAmount += CombothereTotal; } const products = [ { ProdName: 'ITEM 1', Rate: 88.0, SalesQty: 2, MRP: 100, TotalAmt: 176, discount: 0, HSN: '01', Size: 250, UomName: 'g', }, { ProdName: 'ITEM 2', Rate: 300.0, SalesQty: 1, MRP: 350, TotalAmt: 300, discount: 0, HSN: '02', Size: 250, UomName: 'g', }, { ProdName: 'ITEM 3', Rate: 200.0, SalesQty: 1, MRP: 250, TotalAmt: 200, discount: 0, HSN: '03', Size: 250, UomName: 'g', }, { ProdName: 'ITEM 4', Rate: 30.0, SalesQty: 1, MRP: 50, TotalAmt: 30, discount: 0, HSN: '04', Size: 250, UomName: 'g', }, { ProdName: 'ITEM 5', Rate: 30.0, SalesQty: 1, MRP: 50, TotalAmt: 30, discount: 0, HSN: '05', Size: 250, UomName: 'g', }, { ProdName: 'ITEM 6', Rate: 130.0, SalesQty: 1, MRP: 150, TotalAmt: 130, discount: 0, HSN: '06', Size: 250, UomName: 'g', }, { ProdName: 'ITEM 7', Rate: 230.0, SalesQty: 1, MRP: 250, TotalAmt: 230, discount: 0, HSN: '08', Size: 250, UomName: 'g', }, ]; console.log(printDatas, 'printDatasjk'); const chunkSize = PageSize == 'A5' ? 10 : 16; let dataSource = table2Data?.ProductDetails || []; // Paginate the data const paginatedChunks = []; for (let i = 0; i < dataSource.length; i += chunkSize) { paginatedChunks.push(dataSource.slice(i, i + chunkSize)); } const lastChunkRows = paginatedChunks.length > 0 ? paginatedChunks[paginatedChunks.length - 1].length : 0; const shouldFooterBeOnNewPage = lastChunkRows > (PageSize == 'A5' ? 5 : 13); // 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 ); // let printColors = DCPrintTemplateDtl?.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 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, }; return ( <>
| S.No | ) : SLNO && (S.No | )} {GlobaldummyData ? GlobalItem && (Item | ) : Item && (Item | )} {GlobaldummyData ? GlobalQuantity && (Qty | ) : Quantity && (Qty | )}||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {chunkIndex * chunkSize + index + 1} | ) : SLNO && ({chunkIndex * chunkSize + index + 1} | )} {GlobaldummyData ? GlobalItem &&{item?.ProdName} | : Item && (
{item?.ProdName}
({item?.Size ? item?.Size : '1'}{' '}
{item?.SinglePc == 'Y'
? 'PCS'
: item?.Type != 'C'
? item?.UomName
: 'COMBO'}
)
{item?.RequestVariantName
? `${item?.RequestVariantName}`
: ''}
|
)}
{/* {GlobaldummyData ? GlobalHsnCode && {item?.HSN} | : HsnCode &&{item?.HSN} | } */} {/* {GlobaldummyData ? GlobalMRP &&{item?.MRP} | : MRP &&{item?.SinglePc === 'Y' ? item?.Rate : item?.MRP} | } {GlobaldummyData ? GlobalRate &&{item?.Rate} | : Rate &&{item?.Rate} | } {GlobaldummyData ? GlobalDiscount &&{item?.discount} | : Discount &&{item?.Type != "C" ? item?.OfferAmt || 0 : item?.OfferValue || 0} | } */} {GlobaldummyData ? GlobalQuantity && ({item?.SalesQty} | ) : Quantity && ({item?.Qty || item?.DispatchedQty} | )} {/* {GlobaldummyData ? GlobalAmount &&{item?.TotalAmt} | : Amount &&{item?.Type != "C" ? item?.TotalAmt - item?.OfferAmt || 0 : item?.TotalAmt - item?.OfferValue || 0} | } */}
Notes : 10 days Return policy
{Notestext}
Terms & Conditions
Terms & Conditions
Signature
Signature