phonepe #50

Merged
allentj merged 29 commits from phonepe into dev 2025-05-23 09:31:53 +00:00
Showing only changes of commit d73f02726e - Show all commits

View File

@ -58,10 +58,32 @@ export class InvoiceService {
doc.setFontSize(12); doc.setFontSize(12);
doc.setFont('helvetica', 'normal'); doc.setFont('helvetica', 'normal');
doc.text(data.address, 20, 30);
const maxWidth = 170;
const lineHeight = 5;
const addressLines = doc.splitTextToSize(data.address, maxWidth);
if (addressLines.length <= 2) {
for (let i = 0; i < addressLines.length; i++) {
doc.text(addressLines[i], 20, 30 + (i * lineHeight));
}
} else {
doc.text(addressLines[0], 20, 30);
let secondLine = addressLines[1];
if (secondLine.length > 3) {
secondLine = secondLine.substring(0, secondLine.length - 3) + '...';
} else {
secondLine += '...';
}
doc.text(secondLine, 20, 35);
}
const gstYPosition = 40;
if (hasGst) { if (hasGst) {
doc.text(`GSTIN: ${data.gstNumber}`, 20, 40); doc.text(`GSTIN: ${data.gstNumber}`, 20, gstYPosition);
} }
doc.setFontSize(24); doc.setFontSize(24);
@ -75,6 +97,14 @@ export class InvoiceService {
doc.line(20, 45, 190, 45); doc.line(20, 45, 190, 45);
doc.setFontSize(12); doc.setFontSize(12);
const receiptToBoxX = 15;
const receiptToBoxY = 55;
const receiptToBoxWidth = 175;
const receiptToBoxHeight = 45;
doc.setDrawColor(0, 0, 0);
doc.setLineWidth(0.5);
doc.rect(receiptToBoxX, receiptToBoxY, receiptToBoxWidth, receiptToBoxHeight);
doc.setFont('helvetica', 'bold'); doc.setFont('helvetica', 'bold');
doc.text('Receipt To:', 20, 60); doc.text('Receipt To:', 20, 60);
@ -83,20 +113,34 @@ export class InvoiceService {
doc.text(`Phone: ${data.phoneNumber}`, 20, 80); doc.text(`Phone: ${data.phoneNumber}`, 20, 80);
doc.text(`Email: ${data.email}`, 20, 90); doc.text(`Email: ${data.email}`, 20, 90);
autoTable(doc,{ autoTable(doc, {
startY: 110, startY: 110,
head: [['No.', 'Description', 'HSN/SAC', 'Amount (INR)']], head: [['No.', 'Description', 'HSN/SAC', 'Amount (INR)']],
body: [ body: [
['1', `${data.planName} Subscription`, '999723', baseAmount.toFixed(2)] ['1', `${data.planName} Subscription`, '999723', baseAmount.toFixed(2)]
], ],
headStyles: { fillColor: [220, 220, 220], textColor: [0, 0, 0], fontStyle: 'bold' }, headStyles: {
styles: { halign: 'center' }, fillColor: [220, 220, 220],
textColor: [0, 0, 0],
fontStyle: 'bold',
lineWidth: 0.5,
lineColor: [0, 0, 0]
},
styles: {
halign: 'center',
lineWidth: 0.5,
lineColor: [0, 0, 0]
},
columnStyles: { columnStyles: {
0: { halign: 'center', cellWidth: 20 }, 0: { halign: 'center', cellWidth: 20 },
1: { halign: 'left' }, 1: { halign: 'left' },
2: { halign: 'center', cellWidth: 40 }, 2: { halign: 'center', cellWidth: 40 },
3: { halign: 'right', cellWidth: 40 } 3: { halign: 'right', cellWidth: 40 }
} },
theme: 'grid',
tableLineWidth: 0.5,
tableLineColor: [0, 0, 0],
}); });
const finalY = (doc as any).lastAutoTable.finalY + 20; const finalY = (doc as any).lastAutoTable.finalY + 20;
@ -122,6 +166,17 @@ export class InvoiceService {
const paymentY = hasGst ? finalY + 50 : finalY + 20; const paymentY = hasGst ? finalY + 50 : finalY + 20;
doc.line(20, 45, 190, 45);
const boxX = 15;
const boxY = paymentY - 5;
const boxWidth = 175;
const boxHeight = 45;
doc.setDrawColor(0, 0, 0);
doc.setLineWidth(0.5);
doc.rect(boxX, boxY, boxWidth, boxHeight);
doc.setFont('helvetica', 'bold'); doc.setFont('helvetica', 'bold');
doc.text('Payment Information:', 20, paymentY); doc.text('Payment Information:', 20, paymentY);
@ -197,7 +252,7 @@ export class InvoiceService {
let found = false; let found = false;
for (let i = 0; i < paymentsData.length; i++) { for (let i = 0; i < paymentsData.length; i++) {
if (paymentsData[i].referenceNumber === paymentId || if (paymentsData[i].referenceNumber === paymentId ||
paymentsData[i].transactionId === paymentId) { paymentsData[i].transactionId === paymentId) {
paymentsData[i].invoicePath = invoicePath; paymentsData[i].invoicePath = invoicePath;
found = true; found = true;
break; break;