import React from 'react'; import { useDispatch, useSelector } from 'react-redux'; import QrImage from '../../../Images/qrcode.jpg'; import Logo from '../../../Images/Logo.jpg' import { extractLastNumber, extractLastNumberOrderId, printDiv } from '../../../Services/Others'; import { changeReprintDataFound, GloabalFieldDetails, GlobalprintSignature, GlobalprinttermsAndConditions, GlobalSignatureImage, Globalnotes, GlobalthemeFormat, GlobalBillName, } from '../../../Features/ThemeChange/ThemeChange' import { GlobalUpiIDprint } from '../../../Features/BookingScreen/BookingData/BookingData'; import '../../../Styles/BookingScreen/PrintTemplates/ThermalPrinter/PrintStyle12.scss' import signature from "../../../Images/signatureimage.jpg" import { ApplicationPreferences } from '../../../Features/BrachLogin/BranchLogin'; const PurPrintStyle12 = ({ index, ExtraChargeTotal, Date1, base64Image, totalQuantityFilter, BranchCity, BranchZip, CashierName, totalQuantity, OrderDetailGST, OrderDetailIGST, OrderDetailVAT, table2Data, PaymentStatus, PrintGreeting, printDatas }) => { const dispatch = useDispatch(); const GlobalUpiID = useSelector(GlobalUpiIDprint) const FieldDetails = useSelector(GloabalFieldDetails); const SLNO = FieldDetails?.["Sl.No"]; const Item = FieldDetails?.["Item"]; const MRP = FieldDetails?.["MRP"]; const Discount = FieldDetails?.["Discount"]; const Quantity = FieldDetails?.["Quantity"]; const Rate = FieldDetails?.["Rate"]; const Amount = FieldDetails?.["Amount"]; const HsnCode = FieldDetails?.["HsnCode"]; const GlobaltermsAndConditions = useSelector(GlobalprinttermsAndConditions); const appPreferences = useSelector(ApplicationPreferences); let TermsAndConditions = printDatas?.TermsandConditions let SignatureImg = printDatas?.Signature let Notestext = printDatas?.Notes let BillName = printDatas?.PrintHdrName let FormatTheme = printDatas?.PrintType == "S" ? true : false let PageSize = printDatas?.PageSize const Signature = FieldDetails?.["signature"]; const TermsnAdCondition = FieldDetails?.["terms&conditions"]; const keysLength = Object.keys(table2Data ?? {}).length; const printDocument = () => { window.print(); } if (keysLength > 0) { dispatch(changeReprintDataFound(true)); } const productsData = table2Data?.[0]?.productDetails || []; const TakeawayData = table2Data?.[0]?.ProductDetails console.log(table2Data, 'FormatTheme', productsData) let TotalOfferAmount = 0; const chunkSize = PageSize == "A5" ? 8 : 11; let dataSource = table2Data?.[0]?.ProductDetails; 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 : 10); const style12 = ``; const PrintA4 = async () => { await printDiv("SQPrintStyle12", style12, 'FontApply'); }; console.log(table2Data, 'Address1'); 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}>

{table2Data?.[0]?.BranchName}
{table2Data?.[0]?.AddressDetails?.map((addr, index) => { const { Address1, City, Zip } = addr; const parts = [Address1, City, Zip].filter(Boolean).join(' - '); return
{parts}
; })}
Mobile : +91 {table2Data?.customerMobile}
{
Customer Name : {table2Data?.customerName}
} {table2Data?.CustSuppName && table2Data?.CustSuppName !== undefined && table2Data?.CustSuppName !== null &&
Customer : {table2Data?.CustSuppName}
} {table2Data?.OrderType === "E" &&
Estimate
}
image
Bill No : {table2Data?.[0]?.QuotationNo && extractLastNumber(table2Data?.[0]?.QuotationNo)}
{Date1}
{TakeawayData?.length > 0 && <> {
Purchase Quotation
}
{SLNO && } {Item && } {Quantity && } {MRP && } {Rate && } {HsnCode && } {Discount && } {Amount && } {dataChunk?.map((item, index) => ( {SLNO && } {Item && ( )} {Quantity && } {MRP && } {Rate && } {HsnCode && } {Discount && } {Amount && } ))}
S.NoDesQtyMRPRateHSN(%)Amt
{index + 1}
{item?.ProdName}
({item?.Size ? item?.Size : '1'} {item?.SinglePc === 'Y' ? 'PCS' : item?.Type !== 'C' ? item?.UomName : 'COMBO'}) {item?.BrandName !== null ? item?.BrandName : ''}  {item?.ProductIdentifierDtls?.length > 0 && item?.ProductIdentifierDtls.filter( (items) => !(items.SerialNumber === '' || items.SerialNumber == null) ).map((a, i) =>
{a.SerialNumber}
)} {item?.ProductIdentifierDtls?.length > 0 && item?.ProductIdentifierDtls.filter( (item1) => item1.IMEI1 !== '' || item1.IMEI2 !== '' ).map((item2, j) => { const imei1 = item2.IMEI1 || ''; const imei2 = item2.IMEI2 || ''; return
{[imei1, imei2].filter(Boolean).join(',')}
; })}
{item?.Qty}{item?.MRP}{item?.Price}{item?.HSN}{item?.discount}{item?.NetAmt?.toFixed(2)}
}
{((chunkIndex === paginatedChunks.length - 1) && (!shouldFooterBeOnNewPage)) && FormatTheme && <>
Items
:
{totalQuantityFilter?.length}
Qty
:
{totalQuantity}
{(table2Data?.OverallDisc > 0 || TotalOfferAmount > 0) &&
Off
:
{Number(TotalOfferAmount + table2Data?.OverallDisc).toFixed(2)}
}
Amount
:
{Number(table2Data?.[0]?.NetAmount || 0).toFixed(2)}
{console.log(table2Data?.[0]?.NetAmount, 'table2Data?.NetAmount') }
{((OrderDetailGST?.length > 0 && OrderDetailGST?.[0]?.TaxAmt > 0) || (OrderDetailIGST?.length > 0 && OrderDetailIGST?.[0]?.TaxAmt > 0) || (OrderDetailVAT?.length > 0 && OrderDetailVAT?.[0]?.TaxAmt > 0)) && <>

--------- GST Breakup Details -----------

{(OrderDetailGST?.length > 0 && OrderDetailGST?.[0]?.TaxAmt > 0) && {OrderDetailGST?.map((item) => ) }
Taxable Amount CGST ({(OrderDetailGST?.[0]?.TaxPercentage) / 2}%) SGST ({(OrderDetailGST?.[0]?.TaxPercentage) / 2}%) Total Amount
{Number(item.WithOutTaxAmount).toFixed(2)} {Number(item.CGST).toFixed(2)} {Number(item.SGST).toFixed(2)} {Number(item.TotalAmt).toFixed(2)}
} {(OrderDetailIGST?.length > 0 && OrderDetailIGST?.[0]?.TaxAmt > 0) && <>
{OrderDetailIGST?.map((item) => ) }
Taxable Amount IGST ({OrderDetailIGST?.[0]?.TaxPercentage}%) Total Amount
{Number(item.WithOutTaxAmount).toFixed(2)} {Number(item.TaxAmt).toFixed(2)} {Number(item.TotalAmt).toFixed(2)}
} {(OrderDetailVAT?.length > 0 && OrderDetailVAT?.[0]?.TaxAmt > 0) && <>
{OrderDetailVAT?.map((item) => ) }
Taxable Amount VAT ({OrderDetailVAT?.[0]?.TaxPercentage}%) Total Amount
{Number(item.WithOutTaxAmount).toFixed(2)} {Number(item.TaxAmt).toFixed(2)} {Number(item.TotalAmt).toFixed(2)}
}
}

{/*
Recived Amt
:
{GlobaldummyData ? '1,066.00' : Number(table2Data?.NetAmount).toFixed(2) ? Number(table2Data?.NetAmount).toFixed(2) : 0}
Balance Amt
:
0.00
*/}

Your Order No: {table2Data?.[0]?.QuotationNo && extractLastNumber(table2Data?.[0]?.QuotationNo)}
{ Notestext && (

{Notestext}


) }
{ (TermsnAdCondition == true && TermsAndConditions?.length > 0) && (

Terms & Conditions

    {TermsAndConditions?.map(item => (
  1. {item?.TermsandConditions}
  2. ))} {/*
  3. Please check the product before leaving the counter.
  4. */}
) } {Signature == true && (

Signature

)}
{PrintGreeting?.SettingValue === "Y" &&
Thank You Visit Again
} }
))} {shouldFooterBeOnNewPage && FormatTheme &&
<>
Items
:
{totalQuantityFilter?.length}
Qty
:
{totalQuantity}
{(table2Data?.OverallDisc > 0 || TotalOfferAmount > 0) &&
Off
:
{Number(TotalOfferAmount + table2Data?.OverallDisc).toFixed(2)}
}
Amount
{((OrderDetailGST?.length > 0 && OrderDetailGST?.[0]?.TaxAmt > 0) || (OrderDetailIGST?.length > 0 && OrderDetailIGST?.[0]?.TaxAmt > 0) || (OrderDetailVAT?.length > 0 && OrderDetailVAT?.[0]?.TaxAmt > 0)) && <>

--------- GST Breakup Details -----------

{(OrderDetailGST?.length > 0 && OrderDetailGST?.[0]?.TaxAmt > 0) && {OrderDetailGST?.map((item) => ) }
Taxable Amount CGST ({(OrderDetailGST?.[0]?.TaxPercentage) / 2}%) SGST ({(OrderDetailGST?.[0]?.TaxPercentage) / 2}%) Total Amount
{Number(item.WithOutTaxAmount).toFixed(2)} {Number(item.CGST).toFixed(2)} {Number(item.SGST).toFixed(2)} {Number(item.TotalAmt).toFixed(2)}
} {(OrderDetailIGST?.length > 0 && OrderDetailIGST?.[0]?.TaxAmt > 0) && <>
{OrderDetailIGST?.map((item) => ) }
Taxable Amount IGST ({OrderDetailIGST?.[0]?.TaxPercentage}%) Total Amount
{Number(item.WithOutTaxAmount).toFixed(2)} {Number(item.TaxAmt).toFixed(2)} {Number(item.TotalAmt).toFixed(2)}
} {(OrderDetailVAT?.length > 0 && OrderDetailVAT?.[0]?.TaxAmt > 0) && <>
{OrderDetailVAT?.map((item) => ) }
Taxable Amount VAT ({OrderDetailVAT?.[0]?.TaxPercentage}%) Total Amount
{Number(item.WithOutTaxAmount).toFixed(2)} {Number(item.TaxAmt).toFixed(2)} {Number(item.TotalAmt).toFixed(2)}
}
}


Your Order No: {table2Data?.SalesId && extractLastNumber(table2Data?.SalesId)}
{ Notestext && (

{Notestext}


) }
{ (TermsnAdCondition == true && TermsAndConditions?.length > 0) && (

Terms & Conditions

    {TermsAndConditions?.map(item => (
  1. {item?.TermsandConditions}
  2. ))} {/*
  3. Please check the product before leaving the counter.
  4. */}
) } {Signature == true && (

Signature

)}
{PrintGreeting?.SettingValue === "Y" &&
Thank You Visit Again
}
}
:
{/*

{table2Data?.BrName}

*/}

{table2Data?.BrName}
{(table2Data?.AddressDetails?.[0]?.Address1 || '') + (table2Data?.AddressDetails?.[0]?.City ? (table2Data?.AddressDetails?.[0]?.Address1 && table2Data?.AddressDetails?.[0]?.City ? '-' : '') + table2Data?.AddressDetails?.[0]?.City : '') + (table2Data?.AddressDetails?.[0]?.Zip ? (table2Data?.AddressDetails?.[0]?.City && table2Data?.AddressDetails?.[0]?.Zip ? '-' : '') + table2Data?.AddressDetails?.[0]?.Zip : '')}
Mobile : +91 {table2Data?.customerMobile}
{CashierName && CashierName !== undefined && CashierName !== null &&
Cashier : {CashierName}
} {table2Data?.CustSuppName && table2Data?.CustSuppName !== undefined && table2Data?.CustSuppName !== null &&
Customer : {table2Data?.CustSuppName}
} {table2Data?.BookingTypeName == 'Dine In' &&
Waiter : {table2Data?.SalesTableLinkDetails?.[0]?.WaiterName}
} {table2Data?.OrderType === "E" &&
Estimate
}
image
{/*

{table2Data?.PaymentTypeName}  Payment :  {Number(table2Data?.NetAmount).toFixed(2)}/-

*/}
Bill No : {table2Data?.[0]?.QuotationNo && extractLastNumber(table2Data?.[0]?.QuotationNo)}
{Date1}
{/*
*/} {TakeawayData?.length > 0 && <> {
Purchase Quotation
}
{SLNO && } {Item && } {Quantity && } {MRP && } {Rate && } {HsnCode && } {Discount && } {Amount && } {TakeawayData?.map((item, index) => { return ( {SLNO && } {Item && ( )} {Quantity && } {MRP && } {Rate && } {HsnCode && } {Discount && } {Amount && } ) })}
S.NoDesQtyMRPRateHSN(%)Amt
{index + 1}
{item?.ProdName}
({item?.Size ? item?.Size : '1'} {item?.SinglePc === 'Y' ? 'PCS' : item?.Type !== 'C' ? item?.UomName : 'COMBO'}) {item?.BrandName !== null ? item?.BrandName : ''}  {item?.ProductIdentifierDtls?.length > 0 && item?.ProductIdentifierDtls.filter( (items) => !(items.SerialNumber === '' || items.SerialNumber == null) ).map((a, i) =>
{a.SerialNumber}
)} {item?.ProductIdentifierDtls?.length > 0 && item?.ProductIdentifierDtls.filter( (item1) => item1.IMEI1 !== '' || item1.IMEI2 !== '' ).map((item2, j) => { const imei1 = item2.IMEI1 || ''; const imei2 = item2.IMEI2 || ''; return
{[imei1, imei2].filter(Boolean).join(',')}
; })}
{item?.Qty}{item?.MRP}{item?.Price}{item?.HSN}{item?.discount}{item?.NetAmt?.toFixed(2)}
}
Items
:
{totalQuantityFilter?.length}
Qty
:
{totalQuantity}
{(table2Data?.OverallDisc > 0 || TotalOfferAmount > 0) &&
Off
:
{Number(TotalOfferAmount + table2Data?.OverallDisc).toFixed(2)}
} {/*
Extra Charges
:
0
*/}
Amount
:
{Number(table2Data?.[0]?.NetAmount || 0).toFixed(2)}
{console.log(table2Data?.[0]?.NetAmount, 'table2Data?.NetAmount') }
{((OrderDetailGST?.length > 0 && OrderDetailGST?.[0]?.TaxAmt > 0) || (OrderDetailIGST?.length > 0 && OrderDetailIGST?.[0]?.TaxAmt > 0) || (OrderDetailVAT?.length > 0 && OrderDetailVAT?.[0]?.TaxAmt > 0)) && <>

--------- GST Breakup Details -----------

{(OrderDetailGST?.length > 0 && OrderDetailGST?.[0]?.TaxAmt > 0) && {OrderDetailGST?.map((item) => ) }
Taxable Amount CGST ({(OrderDetailGST?.[0]?.TaxPercentage) / 2}%) SGST ({(OrderDetailGST?.[0]?.TaxPercentage) / 2}%) Total Amount
{Number(item.WithOutTaxAmount).toFixed(2)} {Number(item.CGST).toFixed(2)} {Number(item.SGST).toFixed(2)} {Number(item.TotalAmt).toFixed(2)}
} {(OrderDetailIGST?.length > 0 && OrderDetailIGST?.[0]?.TaxAmt > 0) && <>
{OrderDetailIGST?.map((item) => ) }
Taxable Amount IGST ({OrderDetailIGST?.[0]?.TaxPercentage}%) Total Amount
{Number(item.WithOutTaxAmount).toFixed(2)} {Number(item.TaxAmt).toFixed(2)} {Number(item.TotalAmt).toFixed(2)}
} {(OrderDetailVAT?.length > 0 && OrderDetailVAT?.[0]?.TaxAmt > 0) && <>
{OrderDetailVAT?.map((item) => ) }
Taxable Amount VAT ({OrderDetailVAT?.[0]?.TaxPercentage}%) Total Amount
{Number(item.WithOutTaxAmount).toFixed(2)} {Number(item.TaxAmt).toFixed(2)} {Number(item.TotalAmt).toFixed(2)}
}
}


Your Order No:{table2Data?.[0]?.QuotationNo && extractLastNumber(table2Data?.[0]?.QuotationNo)}
{ Notestext && (

{Notestext}


) }
{ (TermsnAdCondition == true && TermsAndConditions?.length > 0) && (

Terms & Conditions

    {TermsAndConditions?.map(item => (
  1. {item?.TermsandConditions}
  2. ))} {/*
  3. Please check the product before leaving the counter.
  4. */}
) } {Signature == true && (

Signature

)}
{PrintGreeting?.SettingValue === "Y" &&
Thank You Visit Again
} {/*
print
*/}
} ) } export default PurPrintStyle12