tango-app-api-payment-subscription 3.0.28-dev → 3.0.30-dev

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tango-app-api-payment-subscription",
3
- "version": "3.0.28-dev",
3
+ "version": "3.0.30-dev",
4
4
  "description": "paymentSubscription",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -25,7 +25,7 @@
25
25
  "nodemon": "^3.1.0",
26
26
  "pdfmake": "^0.2.10",
27
27
  "swagger-ui-express": "^5.0.0",
28
- "tango-api-schema": "^2.0.79",
28
+ "tango-api-schema": "^2.0.83",
29
29
  "tango-app-api-middleware": "^1.0.54-dev",
30
30
  "winston": "^3.12.0",
31
31
  "winston-daily-rotate-file": "^5.0.0"
@@ -1451,6 +1451,13 @@ export const invoiceList = async ( req, res ) => {
1451
1451
  }
1452
1452
  invoiceDetails[0].data.forEach( ( item ) => {
1453
1453
  item.billingDate = dayjs( item.billingDate ).format( 'DD MMM, YYYY' );
1454
+ if ( item.products?.length>0 ) {
1455
+ let newProducts = [];
1456
+ for ( let productIndex = 0; productIndex < item.products.length; productIndex++ ) {
1457
+ newProducts.push( item.products[productIndex]?.product?.product );
1458
+ }
1459
+ item.productList = newProducts;
1460
+ }
1454
1461
  } );
1455
1462
  if ( req.user.userType == 'client' ) {
1456
1463
  invoiceDetails[0].data.forEach( ( item ) => {
@@ -1763,12 +1770,35 @@ export const updatedRevisedPrice = async ( req, res ) => {
1763
1770
  invoiceDetails.save().then( async () => {
1764
1771
  let userDetails= await userService.findOne( { clientId: invoiceDetails.clientId, role: 'superadmin' } );
1765
1772
  if ( userDetails ) {
1773
+ let invoiceInfo;
1774
+ let clientDetails = await paymentService.findOne( { clientId: invoiceDetails.clientId } );
1775
+ let amount = 0;
1776
+ invoiceDetails.products.forEach( ( item ) => {
1777
+ if ( clientDetails.priceType == 'step' ) {
1778
+ item.count = item.product.storeRange;
1779
+ }
1780
+ amount = amount + item.price;
1781
+ } );
1782
+ let invoiceDate= dayjs( invoiceDetails.createdAt ).format( 'DD MMM, YYYY' );
1783
+ let days = clientDetails?.paymentInvoice?.extendPaymentPeriodDays || 10;
1784
+ let dueDate = invoiceDetails?.dueDate ? dayjs( invoiceDetails?.dueDate ).format( 'DD MMM, YYYY' ) : dayjs().add( days, 'days' ).format( 'DD MMM, YYYY' );
1785
+ invoiceInfo = {
1786
+ ...invoiceDetails._doc,
1787
+ clientName: clientDetails.clientName,
1788
+ extendDays: clientDetails.paymentInvoice.extendPaymentPeriodDays,
1789
+ address: clientDetails.billingDetails.billingAddress,
1790
+ amount: amount,
1791
+ discount: req.body.discount,
1792
+ total: req.body.revisedAmount.toFixed( 2 ),
1793
+ invoiceDate,
1794
+ dueDate,
1795
+ };
1766
1796
  const templateHtml = fs.readFileSync( path.resolve( path.dirname( '' ) ) + '/src/hbs/trialCreditNoteEmail.hbs', 'utf8' );
1767
1797
  const template = Handlebars.compile( templateHtml );
1768
- const html = template( { data: '' } );
1798
+ const html = template( { data: invoiceInfo } );
1769
1799
  let params = {
1770
- toEmail: userDetails.email,
1771
- mailSubject: 'test',
1800
+ toEmail: 'sudha@tangotech.co.in',
1801
+ mailSubject: 'Credit Note',
1772
1802
  htmlBody: html,
1773
1803
  attachment: '',
1774
1804
  sourceEmail: appConfig.cloud.aws.ses.adminEmail,
@@ -1949,6 +1979,9 @@ export const invoiceDownload = async ( req, res ) => {
1949
1979
  let clientDetails = await paymentService.findOne( { clientId: invoiceInfo.clientId } );
1950
1980
  let amount = 0;
1951
1981
  invoiceInfo.products.forEach( ( item ) => {
1982
+ if ( clientDetails.priceType == 'step' ) {
1983
+ item.count = item.product.storeRange;
1984
+ }
1952
1985
  amount = amount + item.price;
1953
1986
  } );
1954
1987
  let invoiceDate= dayjs( invoiceInfo.createdAt ).format( 'DD MMM, YYYY' );
@@ -1982,7 +2015,7 @@ export const invoiceDownload = async ( req, res ) => {
1982
2015
  let { window } = new JSDOM( '' );
1983
2016
  const htmlTemplate = htmlToPdfmake( html, { window: window, tableAutoSize: true } );
1984
2017
  const docDefinition = {
1985
- pageMargins: [ 40, 0, 40, 40 ],
2018
+ pageMargins: [ 40, 10, 40, 40 ],
1986
2019
  content: htmlTemplate,
1987
2020
  defaultStyle: {
1988
2021
  font: 'Helvetica',
@@ -0,0 +1,722 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <style type="text/css">
5
+ .invoicemodel,
6
+ .invoicemodel * {
7
+ box-sizing: border-box;
8
+ }
9
+ .invoicemodel {
10
+ background: var(--others-white, #ffffff);
11
+ border-radius: 12px;
12
+ padding: 32px 32px 40px 32px;
13
+ display: flex;
14
+ flex-direction: column;
15
+ gap: 32px;
16
+ align-items: flex-start;
17
+ justify-content: flex-start;
18
+ position: relative;
19
+ overflow: hidden;
20
+ }
21
+ .text {
22
+ display: flex;
23
+ flex-direction: column;
24
+ gap: 16px;
25
+ align-items: flex-start;
26
+ justify-content: flex-start;
27
+ align-self: stretch;
28
+ flex-shrink: 0;
29
+ position: relative;
30
+ }
31
+ .header {
32
+ color: var(--greyscale-900, #121a26);
33
+ text-align: left;
34
+ font-family: var(
35
+ --text-xl-semibold-font-family,
36
+ "Inter-SemiBold",
37
+ sans-serif
38
+ );
39
+ font-size: var(--text-xl-semibold-font-size, 20px);
40
+ line-height: var(--text-xl-semibold-line-height, 30px);
41
+ font-weight: var(--text-xl-semibold-font-weight, 600);
42
+ position: relative;
43
+ align-self: stretch;
44
+ }
45
+ .subheading {
46
+ color: var(--greyscale-700, #384860);
47
+ text-align: left;
48
+ font-family: var(--text-md-medium-font-family, "Inter-Medium", sans-serif);
49
+ font-size: var(--text-md-medium-font-size, 16px);
50
+ line-height: var(--text-md-medium-line-height, 24px);
51
+ font-weight: var(--text-md-medium-font-weight, 500);
52
+ position: relative;
53
+ align-self: stretch;
54
+ }
55
+ .order-detail {
56
+ display: flex;
57
+ flex-direction: column;
58
+ gap: 24px;
59
+ align-items: flex-start;
60
+ justify-content: flex-start;
61
+ align-self: stretch;
62
+ flex-shrink: 0;
63
+ position: relative;
64
+ }
65
+ .text2 {
66
+ display: flex;
67
+ flex-direction: column;
68
+ gap: 8px;
69
+ align-items: flex-start;
70
+ justify-content: flex-start;
71
+ align-self: stretch;
72
+ flex-shrink: 0;
73
+ position: relative;
74
+ }
75
+ .invoicedetails {
76
+ color: var(--greyscale-900, #121a26);
77
+ text-align: left;
78
+ font-family: var(
79
+ --text-md-semibold-font-family,
80
+ "Inter-SemiBold",
81
+ sans-serif
82
+ );
83
+ font-size: var(--text-md-semibold-font-size, 16px);
84
+ line-height: var(--text-md-semibold-line-height, 24px);
85
+ font-weight: var(--text-md-semibold-font-weight, 600);
86
+ position: relative;
87
+ align-self: stretch;
88
+ }
89
+ .body4 {
90
+ text-align: left;
91
+ font-family: var(--text-md-medium-font-family, "Inter-Medium", sans-serif);
92
+ font-size: var(--text-md-medium-font-size, 16px);
93
+ line-height: var(--text-md-medium-line-height, 24px);
94
+ font-weight: var(--text-md-medium-font-weight, 500);
95
+ position: relative;
96
+ align-self: stretch;
97
+ }
98
+ .body-4-span {
99
+ color: var(--greyscale-700, #384860);
100
+ font-family: var(--text-md-medium-font-family, "Inter-Medium", sans-serif);
101
+ font-size: var(--text-md-medium-font-size, 16px);
102
+ line-height: var(--text-md-medium-line-height, 24px);
103
+ font-weight: var(--text-md-medium-font-weight, 500);
104
+ }
105
+ .body-4-span2 {
106
+ color: var(--primary-base, #2969ff);
107
+ font-family: var(--text-md-medium-font-family, "Inter-Medium", sans-serif);
108
+ font-size: var(--text-md-medium-font-size, 16px);
109
+ line-height: var(--text-md-medium-line-height, 24px);
110
+ font-weight: var(--text-md-medium-font-weight, 500);
111
+ }
112
+ .invoicedetailsframe {
113
+ display: flex;
114
+ flex-direction: column;
115
+ gap: 8px;
116
+ align-items: flex-start;
117
+ justify-content: flex-start;
118
+ align-self: stretch;
119
+ flex-shrink: 0;
120
+ position: relative;
121
+ }
122
+ .invoicedetailscontent {
123
+ background: var(--white, #ffffff);
124
+ display: flex;
125
+ flex-direction: row;
126
+ gap: 0px;
127
+ align-items: flex-start;
128
+ justify-content: flex-start;
129
+ align-self: stretch;
130
+ flex-shrink: 0;
131
+ position: relative;
132
+ }
133
+ .column {
134
+ display: flex;
135
+ flex-direction: column;
136
+ gap: 0px;
137
+ align-items: flex-start;
138
+ justify-content: flex-start;
139
+ align-self: stretch;
140
+ flex: 1;
141
+ position: relative;
142
+ }
143
+ .table-header-cell {
144
+ background: var(--gray-50, #f9fafb);
145
+ border-style: solid;
146
+ border-color: var(--gray-200, #eaecf0);
147
+ border-width: 0px 0px 1px 0px;
148
+ padding: 12px 24px 12px 24px;
149
+ display: flex;
150
+ flex-direction: row;
151
+ gap: 12px;
152
+ align-items: center;
153
+ justify-content: flex-start;
154
+ align-self: stretch;
155
+ flex-shrink: 0;
156
+ height: 44px;
157
+ position: relative;
158
+ }
159
+ .table-header {
160
+ display: flex;
161
+ flex-direction: row;
162
+ gap: 4px;
163
+ align-items: center;
164
+ justify-content: flex-start;
165
+ flex-shrink: 0;
166
+ position: relative;
167
+ }
168
+ .text3 {
169
+ color: var(--gray-500, #667085);
170
+ text-align: left;
171
+ font-family: var(--text-md-medium-font-family, "Inter-Medium", sans-serif);
172
+ font-size: var(--text-md-medium-font-size, 16px);
173
+ line-height: var(--text-md-medium-line-height, 24px);
174
+ font-weight: var(--text-md-medium-font-weight, 500);
175
+ position: relative;
176
+ }
177
+ .table-cell {
178
+ border-style: solid;
179
+ border-color: var(--gray-200, #eaecf0);
180
+ border-width: 0px 0px 1px 0px;
181
+ padding: 16px 24px 16px 24px;
182
+ display: flex;
183
+ flex-direction: row;
184
+ gap: 0px;
185
+ align-items: center;
186
+ justify-content: flex-start;
187
+ align-self: stretch;
188
+ flex-shrink: 0;
189
+ height: 72px;
190
+ position: relative;
191
+ }
192
+ .text4 {
193
+ color: var(--gray-600, #475467);
194
+ text-align: left;
195
+ font-family: var(--text-md-medium-font-family, "Inter-Medium", sans-serif);
196
+ font-size: var(--text-md-medium-font-size, 16px);
197
+ line-height: var(--text-md-medium-line-height, 24px);
198
+ font-weight: var(--text-md-medium-font-weight, 500);
199
+ position: relative;
200
+ }
201
+ .table-header2 {
202
+ display: flex;
203
+ flex-direction: row;
204
+ gap: 4px;
205
+ align-items: center;
206
+ justify-content: flex-start;
207
+ flex: 1;
208
+ position: relative;
209
+ }
210
+ .text5 {
211
+ color: var(--gray-500, #667085);
212
+ text-align: right;
213
+ font-family: var(--text-md-medium-font-family, "Inter-Medium", sans-serif);
214
+ font-size: var(--text-md-medium-font-size, 16px);
215
+ line-height: var(--text-md-medium-line-height, 24px);
216
+ font-weight: var(--text-md-medium-font-weight, 500);
217
+ position: relative;
218
+ flex: 1;
219
+ }
220
+ .text6 {
221
+ color: var(--gray-600, #475467);
222
+ text-align: right;
223
+ font-family: var(--text-md-medium-font-family, "Inter-Medium", sans-serif);
224
+ font-size: var(--text-md-medium-font-size, 16px);
225
+ line-height: var(--text-md-medium-line-height, 24px);
226
+ font-weight: var(--text-md-medium-font-weight, 500);
227
+ position: relative;
228
+ flex: 1;
229
+ }
230
+ .table-header3 {
231
+ display: flex;
232
+ flex-direction: row;
233
+ gap: 4px;
234
+ align-items: center;
235
+ justify-content: flex-end;
236
+ flex: 1;
237
+ position: relative;
238
+ }
239
+ .billingvalueframe {
240
+ display: flex;
241
+ flex-direction: column;
242
+ gap: 12px;
243
+ align-items: flex-start;
244
+ justify-content: flex-start;
245
+ align-self: stretch;
246
+ flex-shrink: 0;
247
+ position: relative;
248
+ }
249
+ .subtotal {
250
+ display: flex;
251
+ flex-direction: row;
252
+ gap: 84px;
253
+ align-items: flex-start;
254
+ justify-content: flex-start;
255
+ align-self: stretch;
256
+ flex-shrink: 0;
257
+ position: relative;
258
+ }
259
+ .framestartvalue {
260
+ padding: 0px 24px 0px 24px;
261
+ display: flex;
262
+ flex-direction: row;
263
+ gap: 10px;
264
+ align-items: flex-start;
265
+ justify-content: flex-start;
266
+ flex: 1;
267
+ position: relative;
268
+ }
269
+ .text7 {
270
+ color: var(--gray-500, #667085);
271
+ text-align: left;
272
+ font-family: var(
273
+ --text-md-semibold-font-family,
274
+ "Inter-SemiBold",
275
+ sans-serif
276
+ );
277
+ font-size: var(--text-md-semibold-font-size, 16px);
278
+ line-height: var(--text-md-semibold-line-height, 24px);
279
+ font-weight: var(--text-md-semibold-font-weight, 600);
280
+ position: relative;
281
+ flex: 1;
282
+ }
283
+ .frame-endvalue {
284
+ padding: 0px 23px 0px 23px;
285
+ display: flex;
286
+ flex-direction: row;
287
+ gap: 10px;
288
+ align-items: flex-start;
289
+ justify-content: flex-start;
290
+ flex: 1;
291
+ position: relative;
292
+ }
293
+ .text8 {
294
+ color: var(--gray-500, #667085);
295
+ text-align: right;
296
+ font-family: var(
297
+ --text-md-semibold-font-family,
298
+ "Inter-SemiBold",
299
+ sans-serif
300
+ );
301
+ font-size: var(--text-md-semibold-font-size, 16px);
302
+ line-height: var(--text-md-semibold-line-height, 24px);
303
+ font-weight: var(--text-md-semibold-font-weight, 600);
304
+ position: relative;
305
+ flex: 1;
306
+ }
307
+ .IGST {
308
+ display: flex;
309
+ flex-direction: row;
310
+ gap: 84px;
311
+ align-items: flex-start;
312
+ justify-content: flex-start;
313
+ align-self: stretch;
314
+ flex-shrink: 0;
315
+ position: relative;
316
+ }
317
+ .Total {
318
+ display: flex;
319
+ flex-direction: row;
320
+ gap: 84px;
321
+ align-items: flex-start;
322
+ justify-content: flex-start;
323
+ align-self: stretch;
324
+ flex-shrink: 0;
325
+ position: relative;
326
+ }
327
+ .Discount {
328
+ display: flex;
329
+ flex-direction: row;
330
+ gap: 84px;
331
+ align-items: flex-start;
332
+ justify-content: flex-start;
333
+ align-self: stretch;
334
+ flex-shrink: 0;
335
+ position: relative;
336
+ }
337
+ .divider {
338
+ background: var(--gray-25, #fcfcfd);
339
+ display: flex;
340
+ flex-direction: row;
341
+ gap: 0px;
342
+ align-items: flex-start;
343
+ justify-content: center;
344
+ align-self: stretch;
345
+ flex-shrink: 0;
346
+ position: relative;
347
+ }
348
+ .container {
349
+ padding: 0px 32px 0px 32px;
350
+ display: flex;
351
+ flex-direction: column;
352
+ gap: 32px;
353
+ align-items: flex-start;
354
+ justify-content: flex-start;
355
+ flex: 1;
356
+ height: auto;
357
+ position: relative;
358
+ overflow: visible;
359
+ }
360
+ .finalvalue {
361
+ display: flex;
362
+ flex-direction: row;
363
+ gap: 84px;
364
+ align-items: flex-start;
365
+ justify-content: flex-start;
366
+ align-self: stretch;
367
+ flex-shrink: 0;
368
+ position: relative;
369
+ }
370
+ .line {
371
+ border-style: solid;
372
+ border-color: var(--greyscale-200, #e2e8f0);
373
+ border-width: 1px 0 0 0;
374
+ align-self: stretch;
375
+ flex-shrink: 0;
376
+ height: 0px;
377
+ position: relative;
378
+ transform-origin: 0 0;
379
+ transform: rotate(0deg) scale(1, 1);
380
+ }
381
+ .paymentframe {
382
+ display: flex;
383
+ flex-direction: column;
384
+ gap: 12px;
385
+ align-items: flex-start;
386
+ justify-content: flex-start;
387
+ align-self: stretch;
388
+ flex-shrink: 0;
389
+ position: relative;
390
+ }
391
+ .bank-details {
392
+ color: var(--gray-900, #101828);
393
+ text-align: left;
394
+ font-family: var(
395
+ --text-md-semibold-font-family,
396
+ "Inter-SemiBold",
397
+ sans-serif
398
+ );
399
+ font-size: var(--text-md-semibold-font-size, 16px);
400
+ line-height: var(--text-md-semibold-line-height, 24px);
401
+ font-weight: var(--text-md-semibold-font-weight, 600);
402
+ position: relative;
403
+ }
404
+ .account-details {
405
+ display: flex;
406
+ flex-direction: column;
407
+ gap: 12px;
408
+ align-items: flex-start;
409
+ justify-content: flex-start;
410
+ flex-shrink: 0;
411
+ position: relative;
412
+ }
413
+ .details1 {
414
+ display: flex;
415
+ flex-direction: column;
416
+ gap: 0px;
417
+ align-items: flex-start;
418
+ justify-content: flex-start;
419
+ flex-shrink: 0;
420
+ position: relative;
421
+ }
422
+ .account-number {
423
+ color: var(--gray-500, #667085);
424
+ text-align: left;
425
+ font-family: var(--text-md-medium-font-family, "Inter-Medium", sans-serif);
426
+ font-size: var(--text-md-medium-font-size, 16px);
427
+ line-height: var(--text-md-medium-line-height, 24px);
428
+ font-weight: var(--text-md-medium-font-weight, 500);
429
+ position: relative;
430
+ }
431
+ ._12457687989577 {
432
+ color: var(--gray-800, #1d2939);
433
+ text-align: left;
434
+ font-family: var(
435
+ --text-md-semibold-font-family,
436
+ "Inter-SemiBold",
437
+ sans-serif
438
+ );
439
+ font-size: var(--text-md-semibold-font-size, 16px);
440
+ line-height: var(--text-md-semibold-line-height, 24px);
441
+ font-weight: var(--text-md-semibold-font-weight, 600);
442
+ position: relative;
443
+ width: 210px;
444
+ }
445
+ .details2 {
446
+ display: flex;
447
+ flex-direction: column;
448
+ gap: 0px;
449
+ align-items: flex-start;
450
+ justify-content: flex-start;
451
+ flex-shrink: 0;
452
+ position: relative;
453
+ }
454
+ .ifsc-code {
455
+ color: var(--gray-500, #667085);
456
+ text-align: left;
457
+ font-family: var(--text-md-medium-font-family, "Inter-Medium", sans-serif);
458
+ font-size: var(--text-md-medium-font-size, 16px);
459
+ line-height: var(--text-md-medium-line-height, 24px);
460
+ font-weight: var(--text-md-medium-font-weight, 500);
461
+ position: relative;
462
+ }
463
+ .sbi-0208 {
464
+ color: var(--gray-800, #1d2939);
465
+ text-align: left;
466
+ font-family: var(
467
+ --text-md-semibold-font-family,
468
+ "Inter-SemiBold",
469
+ sans-serif
470
+ );
471
+ font-size: var(--text-md-semibold-font-size, 16px);
472
+ line-height: var(--text-md-semibold-line-height, 24px);
473
+ font-weight: var(--text-md-semibold-font-weight, 600);
474
+ position: relative;
475
+ }
476
+ .text9 {
477
+ display: flex;
478
+ flex-direction: column;
479
+ gap: 12px;
480
+ align-items: flex-start;
481
+ justify-content: flex-start;
482
+ align-self: stretch;
483
+ flex-shrink: 0;
484
+ position: relative;
485
+ }
486
+ .button {
487
+ border-radius: 8px;
488
+ display: flex;
489
+ flex-direction: row;
490
+ gap: 0px;
491
+ align-items: flex-start;
492
+ justify-content: flex-start;
493
+ align-self: stretch;
494
+ flex-shrink: 0;
495
+ position: relative;
496
+ }
497
+ .button-base {
498
+ background: var(--primary-600, #00a3ff);
499
+ border-radius: 8px;
500
+ border-style: solid;
501
+ border-color: var(--primary-600, #00a3ff);
502
+ border-width: 1px;
503
+ padding: 16px 28px 16px 28px;
504
+ display: flex;
505
+ flex-direction: row;
506
+ gap: 8px;
507
+ align-items: center;
508
+ justify-content: center;
509
+ flex: 1;
510
+ position: relative;
511
+ box-shadow: var(
512
+ --shadow-xs-box-shadow,
513
+ 0px 1px 2px 0px rgba(16, 24, 40, 0.05)
514
+ );
515
+ overflow: hidden;
516
+ }
517
+ .text10 {
518
+ color: var(--white, #ffffff);
519
+ text-align: left;
520
+ font-family: "Inter-SemiBold", sans-serif;
521
+ font-size: 18px;
522
+ line-height: 28px;
523
+ font-weight: 600;
524
+ position: relative;
525
+ }
526
+ </style>
527
+
528
+ </head>
529
+
530
+ <body>
531
+ <div class="invoicemodel">
532
+ <div class="text">
533
+ <div class="header">Invoice Raised</div>
534
+ <div class="subheading">
535
+ Thank you for choosing us. We hope you had the best experience while using
536
+ Tango platform.
537
+ <br />
538
+ A new invoice LK4803-0005 is raised for your quarterly cycle and is due
539
+ for payments
540
+ </div>
541
+ </div>
542
+ <div class="order-detail">
543
+ <div class="text2">
544
+ <div class="invoicedetails">Invoice Details</div>
545
+ <div class="body4">
546
+ <span>
547
+ <span class="body-4-span">No. Invoice:</span>
548
+ <span class="body-4-span2">INV/20220403/NTL/75686059</span>
549
+ </span>
550
+ </div>
551
+ <div class="invoicedetailsframe">
552
+ <div class="invoicedetailscontent">
553
+ <div class="column">
554
+ <div class="table-header-cell">
555
+ <div class="table-header">
556
+ <div class="text3">Description</div>
557
+ </div>
558
+ </div>
559
+ <div class="table-cell">
560
+ <div class="text4">Traffic</div>
561
+ </div>
562
+ <div class="table-cell">
563
+ <div class="text4">Traffic</div>
564
+ </div>
565
+ <div class="table-cell">
566
+ <div class="text4">Zone</div>
567
+ </div>
568
+ </div>
569
+ <div class="column">
570
+ <div class="table-header-cell">
571
+ <div class="table-header2">
572
+ <div class="text5">Price</div>
573
+ </div>
574
+ </div>
575
+ <div class="table-cell">
576
+ <div class="text6">$200</div>
577
+ </div>
578
+ <div class="table-cell">
579
+ <div class="text6">$180</div>
580
+ </div>
581
+ <div class="table-cell">
582
+ <div class="text6">$150</div>
583
+ </div>
584
+ </div>
585
+ <div class="column">
586
+ <div class="table-header-cell">
587
+ <div class="table-header3">
588
+ <div class="text5">Stores</div>
589
+ </div>
590
+ </div>
591
+ <div class="table-cell">
592
+ <div class="text6">1 - 100</div>
593
+ </div>
594
+ <div class="table-cell">
595
+ <div class="text6">101 - 150</div>
596
+ </div>
597
+ <div class="table-cell">
598
+ <div class="text6">93</div>
599
+ </div>
600
+ </div>
601
+ <div class="column">
602
+ <div class="table-header-cell">
603
+ <div class="table-header2">
604
+ <div class="text5">Total Amount</div>
605
+ </div>
606
+ </div>
607
+ <div class="table-cell">
608
+ <div class="text6">$20,000</div>
609
+ </div>
610
+ <div class="table-cell">
611
+ <div class="text6">$10,000</div>
612
+ </div>
613
+ <div class="table-cell">
614
+ <div class="text6">$15,000</div>
615
+ </div>
616
+ </div>
617
+ </div>
618
+ <div class="billingvalueframe">
619
+ <div class="subtotal">
620
+ <div class="framestartvalue">
621
+ <div class="text7">Sub Total</div>
622
+ </div>
623
+ <div class="frame-endvalue">
624
+ <div class="text8">$0</div>
625
+ </div>
626
+ </div>
627
+ <div class="IGST">
628
+ <div class="framestartvalue">
629
+ <div class="text7">IGST</div>
630
+ </div>
631
+ <div class="frame-endvalue">
632
+ <div class="text8">9%</div>
633
+ </div>
634
+ </div>
635
+ <div class="Total">
636
+ <div class="framestartvalue">
637
+ <div class="text7">Total</div>
638
+ </div>
639
+ <div class="frame-endvalue">
640
+ <div class="text8">$0</div>
641
+ </div>
642
+ </div>
643
+ <div class="Discount">
644
+ <div class="framestartvalue">
645
+ <div class="text7">Discount</div>
646
+ </div>
647
+ <div class="frame-endvalue">
648
+ <div class="text8">0% (- $0 )</div>
649
+ </div>
650
+ </div>
651
+ <div class="divider">
652
+ <svg
653
+ class="container"
654
+ width="541"
655
+ height="1"
656
+ viewBox="0 0 541 1"
657
+ fill="none"
658
+ xmlns="http://www.w3.org/2000/svg"
659
+ >
660
+ <path
661
+ fill-rule="evenodd"
662
+ clip-rule="evenodd"
663
+ d="M509 1H32V0H509V1Z"
664
+ fill="#EAECF0"
665
+ />
666
+ </svg>
667
+ </div>
668
+ <div class="finalvalue">
669
+ <div class="framestartvalue">
670
+ <div class="text7">Final Value</div>
671
+ </div>
672
+ <div class="frame-endvalue">
673
+ <div class="text8">$0</div>
674
+ </div>
675
+ </div>
676
+ </div>
677
+ </div>
678
+ </div>
679
+ <div class="line"></div>
680
+ <div class="text2">
681
+ <div class="subheading">
682
+ Please complete the payment at the earliest for the continuation of our
683
+ services
684
+ </div>
685
+ <div class="paymentframe">
686
+ <div class="bank-details">Bank Details</div>
687
+ <div class="account-details">
688
+ <div class="details1">
689
+ <div class="account-number">Account Number</div>
690
+ <div class="_12457687989577">12457687989577</div>
691
+ </div>
692
+ <div class="details2">
693
+ <div class="ifsc-code">IFSC Code</div>
694
+ <div class="sbi-0208">SBI0208</div>
695
+ </div>
696
+ </div>
697
+ </div>
698
+ </div>
699
+ <div class="text9">
700
+ <div class="subheading">
701
+ Currently, we do not support RBL to RBL Internal Fund Transfer (IIFT)
702
+ transactions on above account number.
703
+ </div>
704
+ <div class="subheading">
705
+ Cheque deposits are not available for the above account number.
706
+ </div>
707
+ <div class="subheading">
708
+ You can also pay using Credit Card / Debit Card / Net Banking / UPI.
709
+ </div>
710
+ </div>
711
+ <div class="button">
712
+ <div class="button-base">
713
+ <div class="text10">PAY NOW</div>
714
+ </div>
715
+ </div>
716
+ </div>
717
+ </div>
718
+
719
+ </body>
720
+
721
+ </html>
722
+
@@ -449,116 +449,66 @@
449
449
  </td>
450
450
  </tr>
451
451
  <tr>
452
- <td align="left" bgcolor="#ffffff">
453
- <div class="invoicedetailsframe">
454
- <div class="invoicedetailscontent">
455
- <div class="column">
456
- <div class="table-header-cell">
457
- <div class="table-header">
458
- <div class="text3">Description</div>
459
- </div>
460
- </div>
461
- <div class="table-cell">
462
- <div class="text4">Traffic</div>
463
- </div>
464
-
465
- </div>
466
- <div class="column">
467
- <div class="table-header-cell">
468
- <div class="table-header2">
469
- <div class="text5">Price</div>
470
- </div>
471
- </div>
472
- <div class="table-cell">
473
- <div class="text6">$200</div>
474
- </div>
475
-
476
- </div>
477
- <div class="column">
478
- <div class="table-header-cell">
479
- <div class="table-header3">
480
- <div class="text5">Stores</div>
481
- </div>
482
- </div>
483
- <div class="table-cell">
484
- <div class="text6">1 - 100</div>
485
- </div>
486
-
487
- </div>
488
- <div class="column">
489
- <div class="table-header-cell">
490
- <div class="table-header2">
491
- <div class="text5">Total Amount</div>
492
- </div>
493
- </div>
494
- <div class="table-cell">
495
- <div class="text6">$20,000</div>
496
- </div>
497
-
498
- </div>
499
- </div>
500
- </div>
501
- </td>
502
- </tr>
503
- <tr>
504
- <td align="left" bgcolor="#ffffff" ss>
505
- <div class="billingvalueframe">
506
- <div class="subtotal">
507
- <div class="framestartvalue">
508
- <div class="text7">Sub Total</div>
509
- </div>
510
- <div class="frame-endvalue">
511
- <div class="text8">$0</div>
512
- </div>
513
- </div>
514
- <div class="IGST">
515
- <div class="framestartvalue">
516
- <div class="text7">IGST</div>
517
- </div>
518
- <div class="frame-endvalue">
519
- <div class="text8">9%</div>
520
- </div>
521
- </div>
522
- <div class="CGST">
523
- <div class="framestartvalue">
524
- <div class="text7">CGST</div>
525
- </div>
526
- <div class="frame-endvalue">
527
- <div class="text8">9%</div>
528
- </div>
529
- </div>
530
- <div class="Total">
531
- <div class="framestartvalue">
532
- <div class="text7">Total</div>
533
- </div>
534
- <div class="frame-endvalue">
535
- <div class="text8">$0</div>
536
- </div>
537
- </div>
538
- <div class="Discount">
539
- <div class="framestartvalue">
540
- <div class="text7">Discount</div>
541
- </div>
542
- <div class="frame-endvalue">
543
- <div class="text8">0% (- $0 )</div>
544
- </div>
545
- </div>
546
- <div class="divider">
547
- <svg class="container" width="541" height="1" viewBox="0 0 541 1"
548
- fill="none" xmlns="http://www.w3.org/2000/svg">
549
- <path fill-rule="evenodd" clip-rule="evenodd" d="M509 1H32V0H509V1Z"
550
- fill="#EAECF0" />
551
- </svg>
552
- </div>
553
- <div class="finalvalue">
554
- <div class="framestartvalue">
555
- <div class="text7">Final Value</div>
556
- </div>
557
- <div class="frame-endvalue">
558
- <div class="text8">$0</div>
559
- </div>
560
- </div>
561
- </div>
452
+ <td class="o_bg-white o_px-md o_py-xl o_xs-py-md"
453
+ style="background-color: #ffffff;padding-left: 30px;padding-right: 24px;padding-bottom: 10px;">
454
+ <table style="max-width: 600px;border:none" border="0" cellpadding="0" cellspacing="0" width="100%">
455
+ <tr style="border:none;height:40px;margin-top:10px;text-align:left">
456
+ <th style="width:300px;">Description</th>
457
+ <th style="width:120px;">Price</th>
458
+ <th style="width:120px;">Stores</th>
459
+ <th style="width:120px;">Total Amount</th>
460
+ </tr>
461
+ {{#each data.products}}
462
+ <tr style="border:none;margin-top:10px;">
463
+ <td>{{product.product}}</td>
464
+ <td>${{basePrice}}</td>
465
+ <td>{{count}}</td>
466
+ <td>${{price}}</td>
467
+ </tr>
468
+ {{/each}}
469
+ <tr style="border:none;">
470
+ <td></td>
471
+ <td></td>
472
+ <td></td>
473
+ <td></td>
474
+ </tr>
475
+ <tr style="border:none;border-top: 5px solid #eaecf0;margin-top:10px;">
476
+ <td>Sub Total</td>
477
+ <td></td>
478
+ <td></td>
479
+ <td>${{data.amount}}</td>
480
+ </tr>
481
+ <tr style="border:none;margin-top:10px;">
482
+ <td>IGST</td>
483
+ <td></td>
484
+ <td></td>
485
+ <td>0%</td>
486
+ </tr>
487
+ <tr style="border:none;margin-top:10px;">
488
+ <td>Total</td>
489
+ <td></td>
490
+ <td></td>
491
+ <td>${{data.total}}</td>
492
+ </tr>
493
+ <tr style="border:none;margin-top:10px;">
494
+ <td>Discount</td>
495
+ <td></td>
496
+ <td></td>
497
+ <td>{{data.discount}}</td>
498
+ </tr>
499
+ <tr style="border:none;">
500
+ <td></td>
501
+ <td></td>
502
+ <td></td>
503
+ <td></td>
504
+ </tr>
505
+ <tr style="border:none;border-top: 5px solid #eaecf0;margin-top:10px;">
506
+ <td>Final Value</td>
507
+ <td></td>
508
+ <td></td>
509
+ <td>${{data.total}}</td>
510
+ </tr>
511
+ </table>
562
512
  </td>
563
513
  </tr>
564
514
  </table>