import { useDispatch } from 'react-redux'; import '../../Styles/PurchaseQuotation/PurchaseQuotationPrint.scss'; import { getBranchDetail } from '../../Features/BrachLogin/BranchLogin'; import { dateFormatChange1, getSession } from '../../Services/Others'; import { useEffect, useState } from 'react'; import moment from 'moment'; import DCPrintA4Style11 from './DCPrintTemplates/DCA4/DCPrintA4Style11'; import { useSelector } from 'react-redux'; import { GlobalDCPrintTemplate } from '../../Features/ThemeChange/ThemeChange'; import DCPrintStyle1 from './DCPrintTemplates/DCThermalPrinter/DCPrintStyle1'; import DCPrintstyle2 from './DCPrintTemplates/DCThermalPrinter/DCPrintStyle2'; import DCPrintStyle3 from './DCPrintTemplates/DCThermalPrinter/DCPrintStyle3'; import DCPrintstyle4 from './DCPrintTemplates/DCThermalPrinter/DCPrintStyle4'; import DCPrintStyle5 from './DCPrintTemplates/DCThermalPrinter/DCPrintStyle5'; import DCPrintstyle6 from './DCPrintTemplates/DCThermalPrinter/DCPrintStyle6'; import DCPrintStyle7 from './DCPrintTemplates/DCThermalPrinter/DCPrintStyle7'; import DCPrintstyle8 from './DCPrintTemplates/DCThermalPrinter/DCPrintStyle8'; import DCPrintStyle9 from './DCPrintTemplates/DCThermalPrinter/DCPrintStyle9'; import DCPrintStyle10 from './DCPrintTemplates/DCThermalPrinter/DCPrintStyle10'; import DCPrintStyle11 from './DCPrintTemplates/DCThermalPrinter/DCPrintStyle11'; import DCPrintstyle12 from './DCPrintTemplates/DCThermalPrinter/DCPrintStyle12'; import DCPrintStyleA5 from './DCPrintTemplates/DCA4/DCPrintStyleA5'; import DCA4Standard from './DCPrintTemplates/DCA4/DCA4Standard'; import DCInvicePrint from './DCPrintTemplates/DCThermalPrinter/DCInvicePrint'; const DeliveryPrint = ({ PrintingData1, DCprinterTemplateStyle, DCPrintTemplateDtl, }) => { const PrintingData = PrintingData1?.[0]; console.log(PrintingData, 'PrintingData'); const dispatch = useDispatch(); const BranchId = getSession('BranchId'); console.log(DCprinterTemplateStyle, 'DCprinterTemplateStyle'); const Date1 = dateFormatChange1(PrintingData?.[0]?.DCDate); const [BranchDetails, setBranchDetails] = useState({}); const [BranchLogo, setBranchLogo] = useState(null); const [BranchAddress, setBranchAddress] = useState(); const [BranchCity, setBranchCity] = useState(); const [BranchZip, setBranchZip] = useState(); const [BranchName, setBranchName] = useState(); const [base64Image, setBase64Image] = useState(null); const [conversionError, setConversionError] = useState(null); useEffect(() => { fetchBranchData(); }, []); const imageUrlToBase64 = async (url) => { try { const response = await fetch(url); const blob = await response.blob(); return new Promise((resolve, reject) => { const reader = new FileReader(); reader.onloadend = () => resolve(reader.result); reader.onerror = reject; reader.readAsDataURL(blob); }); } catch (error) { console.error('Error fetching or converting image:', error); throw error; } }; // Call the function to convert the image URL to base64 useEffect(() => { async function fetchImage() { try { const base64 = await imageUrlToBase64(BranchLogo); setBase64Image(base64); } catch (error) { setConversionError(error.message || 'Error converting image'); } } if (BranchLogo) { fetchImage(); } }, [BranchLogo]); const fetchBranchData = async () => { const response = await dispatch( getBranchDetail({ BrId: BranchId }) ).unwrap(); if (response?.data?.statusCode === 1) { console.log(response?.data?.data, 'branchdata'); setBranchDetails(response?.data?.data?.[0]); setBranchName(response?.data?.data?.[0]?.BrName); setBranchAddress(response?.data?.data?.[0]?.Address1); setBranchCity(response?.data?.data?.[0]?.City); setBranchLogo(response?.data?.data?.[0]?.CompLogo); } else { setBranchAddress(); setBranchCity(); setBranchZip(); setBranchLogo(); } }; const chunkSize = 17; let dataChunks = []; // Check if PrintingData exists and has ProductDetails if (PrintingData?.[0]?.ProductDetails) { // Only split into chunks if there are more items than chunkSize if (PrintingData[0].ProductDetails.length > chunkSize) { // Split table data into chunks for ( let i = 0; i < PrintingData[0].ProductDetails.length; i += chunkSize ) { dataChunks.push(PrintingData[0].ProductDetails.slice(i, i + chunkSize)); } } else { // If less items than chunkSize, just use one chunk dataChunks = [PrintingData[0].ProductDetails]; } } console.log(dataChunks, 'dataChunksdataChunks'); return ( <> {/* */}{' '}
{dataChunks.length > 0 && dataChunks.map((dataChunk, chunkIndex) => (
{base64Image ? ( Base64 Image console.error('Image error:', e)} /> ) : null}
{BranchName}
{BranchAddress}
{BranchCity}
{/*
Gst No:33AAACH7409R1Z8
*/}
{PrintingData?.[0]?.DCNo && (
Delivery Challan No: {PrintingData?.[0]?.DCNo}
)} {PrintingData?.[0]?.RequestId && (
Ref No #:{' '} {PrintingData?.[0]?.RequestId}
)} {PrintingData?.[0]?.DCDate && (
Order Date:{' '} {dateFormatChange1(PrintingData?.[0]?.DCDate)}
)} {PrintingData?.[0]?.RequestedDate && (
Requested Date: {dateFormatChange1(PrintingData?.[0]?.RequestedDate)}
)} {PrintingData?.[0]?.ModeOfTransport && (
Transport Mode: {PrintingData?.[0]?.ModeOfTransport}
)} {PrintingData?.[0]?.TransporterName && (
Transporter Name: {PrintingData?.[0]?.TransporterName}
)} {PrintingData?.[0]?.TransporterId && (
Transporter ID: {PrintingData?.[0]?.TransporterId}
)} {PrintingData?.[0]?.VehicleNo && (
Vehicle No: {PrintingData?.[0]?.VehicleNo}
)}
{PrintingData?.[0]?.ToBranchDtl?.length > 0 && (
Delivery To :
{PrintingData?.[0]?.ToBranchDtl?.[0]?.BranchName}
{PrintingData?.[0]?.ToBranchDtl?.[0]?.Address1 && (
{PrintingData?.[0]?.ToBranchDtl?.[0]?.Address1}
)} {(PrintingData?.[0]?.ToBranchDtl?.[0]?.City || PrintingData?.[0]?.ToBranchDtl?.[0]?.Dist || PrintingData?.[0]?.ToBranchDtl?.[0]?.Zip) && (
{`${PrintingData?.[0]?.ToBranchDtl?.[0]?.City}, ${PrintingData?.[0]?.ToBranchDtl?.[0]?.Dist} - ${PrintingData?.[0]?.ToBranchDtl?.[0]?.Zip}`}
)} {PrintingData?.[0]?.ToBranchDtl?.[0]?.BrGSTIN && (
{PrintingData?.[0]?.ToBranchDtl?.[0]?.BrGSTIN}
)} {/*
Gst No:33AAACH7409R1Z8
*/}
{PrintingData?.[0]?.DispatchId && (
Dispatch No #:{' '} {PrintingData?.[0]?.DispatchId}
)} {PrintingData?.[0]?.CreatedDate && (
Dispatch Date: {dateFormatChange1(PrintingData?.[0]?.CreatedDate)}
)}
)}
Delivery Details
{PrintingData?.[0]?.CustName && (
Name: {PrintingData?.[0]?.CustName}
)} {/* {PrintingData?.[0]?.CustMobile && ( */} {PrintingData?.[0]?.CustMobile && (
Mobile: {PrintingData?.[0]?.CustMobile}
)}
{/* */} {dataChunk?.map((item, index) => ( {/* */} ))}
Sl.No. Item & Description Qty UOM
{chunkIndex * chunkSize + index + 1} {item?.ProdName} {/* {item?.ProdVariantName && (
Variant: {item?.ProdVariantName}
)} */} {(item?.ProdVariantName || item?.RequestVariantName) && (item?.RequestVariantName || item?.ProdVariantName) !== 'Variant 1' && (
Variant:{' '} {item?.RequestVariantName || item?.ProdVariantName}
)}
{item?.Qty || item?.DispatchedQty} {item?.UOM}
))}
{DCprinterTemplateStyle === 'Style 1' && ( )} {DCprinterTemplateStyle === 'Style 2' && ( )} {DCprinterTemplateStyle === 'Style 3' && ( )} {DCprinterTemplateStyle === 'Style 4' && ( )} {DCprinterTemplateStyle === 'Style 5' && ( )} {DCprinterTemplateStyle === 'Style 6' && ( )} {DCprinterTemplateStyle === 'Style 7' && ( )} {DCprinterTemplateStyle === 'Style 8' && ( )} {DCprinterTemplateStyle === 'Style 9' && ( )} {DCprinterTemplateStyle === 'Style 10' && ( )} {DCprinterTemplateStyle === 'Style 11' && ( )} {DCprinterTemplateStyle === 'Style 12' && ( )} {DCprinterTemplateStyle === 'A4' && ( )} {DCprinterTemplateStyle === 'A5' && ( )} {DCprinterTemplateStyle === 'A4Standard' && ( )} {DCprinterTemplateStyle === 'TaxInvoice' && ( )}
); }; export default DeliveryPrint;