import { extractLastNumber, getSession } from '../../../../Services/Others'; import moment from 'moment'; const AllProductTokenMobilePrint = async (PrintDetails, UpiId, Mode) => { console.log(PrintDetails, Mode, 'PrintDetailsPrintDetails'); let PrintDetail; let PaymentDetail; if (Mode === 'Reprint') { PrintDetail = PrintDetails; PaymentDetail = PrintDetails?.[0]?.OrderPaymentDtl?.filter( (ps) => ps.PaymentStatus === 'S' ); } else { PrintDetail = PrintDetails?.[0]?.OrderDetails; PaymentDetail = PrintDetails?.[0]?.PaymentOrderDtl?.filter( (ps) => ps.PaymentStatus === 'S' ); } let receiptTextnormal = ''; let LogoImage; let TokenData = ''; let OrderId; let receiptTextest = ''; let FooterPrint = ''; PrintDetail?.map((PrintDetails) => { OrderId = extractLastNumber(PrintDetails?.OrderId); let OrderDate = moment(PrintDetails?.CreatedDate).format( 'DD-MM-YYYY, hh:mm A' ); let Takeawaydata = PrintDetails?.productDetails?.filter( (item) => item?.BookingTypeName?.toLowerCase() === 'takeaway' && item?.TokenAvailable === 'Y' ); let fulltakeawaydata; if (Takeawaydata?.length > 0) { let takeawaybookingdata = Takeawaydata?.map((data, index) => { const snoSpacing = Math.max(0, 3 - String(index + 1).length); // Calculate dynamic spacing for Rate const rateSpacing = Math.max(0, 6 - String(data?.Rate).length); const QtySpacing = Math.max(0, 3 - String(data?.SalesQty).length); // Calculate dynamic spacing for TotalAmt const totalAmtSpacing = Math.max(0, 7 - String(data?.TotalAmt).length); // Generate formatted string with dynamic spacings const formattedString = ' '.repeat(snoSpacing) + parseInt(index + 1) + ' ' + (data?.ProdNameQty + ' '.repeat(22)).substring(0, 22) + ' ' + ' '.repeat(QtySpacing) + String(data?.SalesQty) + ' ' + ' '.repeat(rateSpacing) + String(data?.Rate) + ' ' + ' '.repeat(totalAmtSpacing) + String(data?.TotalAmt) + ' ' + '\n'; return formattedString; }); fulltakeawaydata = '[C]------------------------------------------------\n' + '[L]' + '' + 'S.No' + ' ' + ' Item ' + ' ' + 'Qty ' + ' ' + 'Rate ' + ' ' + 'Amt' + '' + '' + '[L]\n' + '[C]------------------------------------------------\n' + takeawaybookingdata.join('') + '[C]------------------------------------------------\n'; } else { fulltakeawaydata = ''; } // let LogoImage if ( PrintDetails?.CompLogo !== null && PrintDetails?.CompLogo !== undefined ) { LogoImage = PrintDetails?.CompLogo; } else { LogoImage = ''; } var receiptText = "[C]" + 'Token' + '\n' + '[L]Bill No :' + OrderId + '[R]' + OrderDate + '\n' + fulltakeawaydata + '[C]------------------------------------------------\n'; if (PrintDetails?.OrderType === 'E') { receiptTextest = receiptText; } else { receiptTextnormal = receiptText; } }); console.log(receiptTextnormal, 'receiptTextreceiptText'); var textEncoded = encodeURI(receiptTextnormal); var textEncodedest = encodeURI(receiptTextest); var TypeCheck = 'PrintReceipt'; var scheme = 'pozoprinter'; var packageName = 'com.example.pozoprinter'; window.location.href = scheme + '://' + textEncoded + '#Intent;scheme=' + scheme + ';package=' + packageName + TypeCheck + 'ImgS' + LogoImage + 'ImgE' + 'TokenS' + TokenData + 'TokenE' + 'OrderS' + OrderId + 'OrderE' + 'EstimateS' + textEncodedest + 'EstimateE' + 'HasFooterTextS' + FooterPrint + 'HasFooterTextE' + ';end;'; }; export default AllProductTokenMobilePrint;