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;