tango-app-api-payment-subscription 3.0.32-dev → 3.0.34-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.32-dev",
3
+ "version": "3.0.34-dev",
4
4
  "description": "paymentSubscription",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -221,6 +221,7 @@ export const clientBillingSubscriptionInfo = async ( req, res, next ) => {
221
221
 
222
222
  export const pricingInfo = async ( req, res ) => {
223
223
  try {
224
+ req.body.calculateSignup = true;
224
225
  let pricingDetails = await calculatePricing( req, res );
225
226
  return res.sendSuccess( pricingDetails );
226
227
  } catch ( e ) {
@@ -265,7 +266,11 @@ async function calculatePricing( req, res ) {
265
266
  let getProduct = productList.find( ( item ) => item.productName == element );
266
267
  let camaraPerSqft = getProduct.camaraPerStores.filter( ( data ) => data.sqft == input.camaraPerSqft );
267
268
  let basicprice = Math.round( getProduct.basePrice * ( camaraPerSqft[0].camaraCount ) );
268
- productDiscounts.push( getProduct.discoutPercentage );
269
+ if ( req.body.calculateSignup ) {
270
+ productDiscounts.push( getProduct.signupPercentage );
271
+ } else {
272
+ productDiscounts.push( getProduct.discoutPercentage );
273
+ }
269
274
  let stage = 0;
270
275
  if ( input.storesCount == '1-25' ) {
271
276
  stage = 0;
@@ -1622,7 +1627,27 @@ export const pricingListUpdate = async ( req, res ) => {
1622
1627
  if ( !req.body.type ) {
1623
1628
  req.body.type = 'standard';
1624
1629
  }
1630
+ let productList;
1625
1631
  if ( req.body?.products && req.body?.products?.length ) {
1632
+ productList = JSON.parse( JSON.stringify( req.body ) );
1633
+ let amount =0;
1634
+ productList.products.forEach( ( item ) => {
1635
+ if ( req.body.client.paymentInvoice.currencyType == 'dollar' ) {
1636
+ item.basePrice = convertINRtoUSD( item.basePrice );
1637
+ item.price = convertINRtoUSD( item.price );
1638
+ }
1639
+ if ( req.body.client.priceType == 'step' ) {
1640
+ item.storeCount = item.storeRange;
1641
+ }
1642
+ amount = amount + item.price;
1643
+ } );
1644
+ productList = {
1645
+ ...productList,
1646
+ amount: amount,
1647
+ currencyType: req.body.client.paymentInvoice.currencyType == 'dollar' ? '$' : '₹',
1648
+ total: amount.toFixed( 2 ),
1649
+ discount: 0,
1650
+ };
1626
1651
  req.body.products.forEach( ( item ) => {
1627
1652
  delete item.originalPrice;
1628
1653
  delete item.oldPrice;
@@ -1651,10 +1676,10 @@ export const pricingListUpdate = async ( req, res ) => {
1651
1676
  if ( userDetails ) {
1652
1677
  const templateHtml = fs.readFileSync( path.resolve( path.dirname( '' ) ) + '/src/hbs/revisedPriceEmail.hbs', 'utf8' );
1653
1678
  const template = Handlebars.compile( templateHtml );
1654
- const html = template( { data: '' } );
1679
+ const html = template( { data: productList } );
1655
1680
  let params = {
1656
1681
  toEmail: userDetails.email,
1657
- mailSubject: 'test',
1682
+ mailSubject: 'Invoice Revised',
1658
1683
  htmlBody: html,
1659
1684
  attachment: '',
1660
1685
  sourceEmail: appConfig.cloud.aws.ses.adminEmail,
@@ -1799,7 +1824,7 @@ export const updatedRevisedPrice = async ( req, res ) => {
1799
1824
  const template = Handlebars.compile( templateHtml );
1800
1825
  const html = template( { data: invoiceInfo } );
1801
1826
  let params = {
1802
- toEmail: 'sudha@tangotech.co.in',
1827
+ toEmail: userDetails.email,
1803
1828
  mailSubject: 'Credit Note',
1804
1829
  htmlBody: html,
1805
1830
  attachment: '',
@@ -1933,7 +1958,7 @@ export const getExpiredClients = async ( req, res ) => {
1933
1958
  {
1934
1959
  $match: {
1935
1960
  'planDetails.product.status': 'trial',
1936
- 'planDetails.product.trialEndDate': { $gte: start, $lte: end },
1961
+ 'planDetails.product.trialEndDate': { $gt: end },
1937
1962
  },
1938
1963
  },
1939
1964
  ];
@@ -1981,6 +2006,10 @@ export const invoiceDownload = async ( req, res ) => {
1981
2006
  let clientDetails = await paymentService.findOne( { clientId: invoiceInfo.clientId } );
1982
2007
  let amount = 0;
1983
2008
  invoiceInfo.products.forEach( ( item ) => {
2009
+ if ( clientDetails.paymentInvoice.currencyType == 'dollar' ) {
2010
+ item.basePrice = convertINRtoUSD( item.basePrice );
2011
+ item.price = convertINRtoUSD( item.price );
2012
+ }
1984
2013
  if ( clientDetails.priceType == 'step' ) {
1985
2014
  item.count = item.product.storeRange;
1986
2015
  }
@@ -1996,6 +2025,7 @@ export const invoiceDownload = async ( req, res ) => {
1996
2025
  extendDays: clientDetails.paymentInvoice.extendPaymentPeriodDays,
1997
2026
  address: clientDetails.billingDetails.billingAddress,
1998
2027
  amount: amount,
2028
+ currencyType: clientDetails?.paymentInvoice?.currencyType == 'dollar' ? '$' : '₹',
1999
2029
  // total: ( amount + ( parseFloat( amount ) * 0.19 ) ).toFixed( 2 ),
2000
2030
  total: amount.toFixed( 2 ),
2001
2031
  invoiceDate,
@@ -2271,14 +2301,21 @@ export const invoiceGenerate = async ( req, res ) => {
2271
2301
  invoiceDetails.forEach( ( item ) => {
2272
2302
  amount = item.price + amount;
2273
2303
  } );
2304
+ let storeQuery = {
2305
+ clientId: requestClient[clientIndex],
2306
+ status: 'active',
2307
+ };
2308
+ let storeCount = await storeService.count( storeQuery );
2274
2309
  let data = {
2275
2310
  invoice: `invoice#${requestClient[clientIndex]}-${dayjs().format( 'MMM YYYY' )}`,
2276
2311
  products: invoiceDetails,
2277
2312
  status: 'pending',
2278
2313
  amount: amount,
2314
+ totalAmount: amount,
2279
2315
  clientId: requestClient[clientIndex],
2280
2316
  paymentMethod: getClient?.paymentInvoice?.paymentType || 'online',
2281
2317
  billingDate: new Date(),
2318
+ stores: storeCount,
2282
2319
  };
2283
2320
 
2284
2321
  await invoiceService.create( data );
@@ -2300,3 +2337,55 @@ function convertINRtoUSD( amountINR ) {
2300
2337
  const amountUSD = amountINR * exchangeRate;
2301
2338
  return amountUSD;
2302
2339
  }
2340
+
2341
+
2342
+ export const invoiceRevised = async ( req, res ) => {
2343
+ try {
2344
+ let invoiceDetails = await invoiceService.findOne( { _id: req.params.invoiceId } );
2345
+ if ( !invoiceDetails ) {
2346
+ return res.sendError( 'no data found', 204 );
2347
+ }
2348
+ let userDetails= await userService.findOne( { clientId: invoiceDetails.clientId, role: 'superadmin' } );
2349
+ let clientDetails = await paymentService.findOne( { clientId: invoiceDetails.clientId } );
2350
+ if ( userDetails ) {
2351
+ let amount = 0;
2352
+ let invoiceDate= dayjs( invoiceDetails.createdAt ).format( 'DD MMM, YYYY' );
2353
+ let days = clientDetails?.paymentInvoice?.extendPaymentPeriodDays || 10;
2354
+ let dueDate = invoiceDetails?.dueDate ? dayjs( invoiceDetails?.dueDate ).format( 'DD MMM, YYYY' ) : dayjs().add( days, 'days' ).format( 'DD MMM, YYYY' );
2355
+ invoiceDetails.products.forEach( ( item ) => {
2356
+ if ( clientDetails?.paymentInvoice?.currencyType == 'dollar' ) {
2357
+ item.basePrice = convertINRtoUSD( item.basePrice );
2358
+ item.price = convertINRtoUSD( item.price );
2359
+ }
2360
+ if ( clientDetails.priceType == 'step' ) {
2361
+ item.count = item.product.storeRange;
2362
+ }
2363
+ amount = amount + item.price;
2364
+ } );
2365
+ let data = {
2366
+ ...invoiceDetails._doc,
2367
+ amount: amount,
2368
+ discount: invoiceDetails.discount,
2369
+ currencyType: clientDetails?.paymentInvoice?.currencyType == 'dollar' ? '$' : '₹',
2370
+ total: amount.toFixed( 2 ),
2371
+ invoiceDate,
2372
+ dueDate,
2373
+ };
2374
+ const templateHtml = fs.readFileSync( path.resolve( path.dirname( '' ) ) + '/src/hbs/invoiceRaised.hbs', 'utf8' );
2375
+ const template = Handlebars.compile( templateHtml );
2376
+ const html = template( { data: data } );
2377
+ let params = {
2378
+ toEmail: userDetails.email,
2379
+ mailSubject: 'Invoice Revised Successfully',
2380
+ htmlBody: html,
2381
+ attachment: '',
2382
+ sourceEmail: appConfig.cloud.aws.ses.adminEmail,
2383
+ };
2384
+ await sendEmailWithSES( params.toEmail, params.mailSubject, params.htmlBody, params.attachment, params.sourceEmail );
2385
+ return res.sendSuccess( 'Invoice Revised Successfully' );
2386
+ }
2387
+ } catch ( e ) {
2388
+ logger.error( { error: e, function: 'invoiceRevised' } );
2389
+ return res.sendError( e, 500 );
2390
+ }
2391
+ };
@@ -220,3 +220,11 @@ export const invoiceUpdateParams = {
220
220
  body: invoiceUpdateSchema,
221
221
  };
222
222
 
223
+
224
+ export const invoiceRevisedSchema = {
225
+ invoiceId: joi.string().required(),
226
+ };
227
+ export const invoiceRevisedParams = {
228
+ params: invoiceRevisedSchema,
229
+ };
230
+
@@ -93,9 +93,9 @@
93
93
  {{#each data.products}}
94
94
  <tr style="border:none;margin-top:10px;">
95
95
  <td>{{product.product}}</td>
96
- <td>${{basePrice}}</td>
96
+ <td><span style="font-size:15px">{{../data.currencyType}} &nbsp;</span>{{basePrice}}</td>
97
97
  <td>{{count}}</td>
98
- <td>${{price}}</td>
98
+ <td><span style="font-size:15px">{{../data.currencyType}} &nbsp;</span> {{price}}</td>
99
99
  </tr>
100
100
  {{/each}}
101
101
  <tr style="border:none;">
@@ -108,7 +108,7 @@
108
108
  <td>Sub Total</td>
109
109
  <td></td>
110
110
  <td></td>
111
- <td>${{data.amount}}</td>
111
+ <td><span style="font-size:15px">{{data.currencyType}} &nbsp;</span> {{data.amount}}</td>
112
112
  </tr>
113
113
  <tr style="border:none;margin-top:10px;">
114
114
  <td>IGST</td>
@@ -120,7 +120,7 @@
120
120
  <td>Total</td>
121
121
  <td></td>
122
122
  <td></td>
123
- <td>${{data.total}}</td>
123
+ <td><span style="font-size:15px">{{data.currencyType}} &nbsp;</span> {{data.total}}</td>
124
124
  </tr>
125
125
  <tr style="border:none;margin-top:10px;">
126
126
  <td>Discount</td>
@@ -138,7 +138,7 @@
138
138
  <td>Final Value</td>
139
139
  <td></td>
140
140
  <td></td>
141
- <td>${{data.total}}</td>
141
+ <td><span style="font-size:15px">{{data.currencyType}} &nbsp;</span> {{data.total}}</td>
142
142
  </tr>
143
143
  </table>
144
144
  <br/>
@@ -545,138 +545,70 @@
545
545
  <div class="body4">
546
546
  <span>
547
547
  <span class="body-4-span">No. Invoice:</span>
548
- <span class="body-4-span2">INV/20220403/NTL/75686059</span>
548
+ <span class="body-4-span2">{{data.invoice}}</span>
549
549
  </span>
550
550
  </div>
551
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>
552
+ <table style="max-width: 600px;border:none" border="0" cellpadding="0" cellspacing="0" width="100%">
553
+ <tr style="border:none;height:40px;margin-top:10px;text-align:left">
554
+ <th style="width:300px;">Description</th>
555
+ <th style="width:120px;">Price</th>
556
+ <th style="width:120px;">Stores</th>
557
+ <th style="width:120px;">Total Amount</th>
558
+ </tr>
559
+ {{#each data.products}}
560
+ <tr style="border:none;margin-top:10px;">
561
+ <td>{{product.product}}</td>
562
+ <td>{{../data.currencyType}} {{basePrice}}</td>
563
+ <td>{{count}}</td>
564
+ <td>{{../data.currencyType}} {{price}}</td>
565
+ </tr>
566
+ {{/each}}
567
+ <tr style="border:1px solid grey;">
568
+ <td></td>
569
+ <td></td>
570
+ <td></td>
571
+ <td></td>
572
+ </tr>
573
+ <tr style="border:none;border-top: 5px solid #eaecf0;margin-top:10px;">
574
+ <td>Sub Total</td>
575
+ <td></td>
576
+ <td></td>
577
+ <td>{{data.currencyType}} {{data.amount}}</td>
578
+ </tr>
579
+ <tr style="border:none;margin-top:10px;">
580
+ <td>IGST</td>
581
+ <td></td>
582
+ <td></td>
583
+ <td>0%</td>
584
+ </tr>
585
+ <tr style="border:none;margin-top:10px;">
586
+ <td>Total</td>
587
+ <td></td>
588
+ <td></td>
589
+ <td>{{data.currencyType}} {{data.total}}</td>
590
+ </tr>
591
+ <tr style="border:none;margin-top:10px;">
592
+ <td>Discount</td>
593
+ <td></td>
594
+ <td></td>
595
+ <td>{{data.discount}}</td>
596
+ </tr>
597
+ <tr style="border:1px solid grey;">
598
+ <td></td>
599
+ <td></td>
600
+ <td></td>
601
+ <td></td>
602
+ </tr>
603
+ <tr style="border:none;border-top: 5px solid #eaecf0;margin-top:10px;">
604
+ <td>Final Value</td>
605
+ <td></td>
606
+ <td></td>
607
+ <td>{{data.currencyType}} {{data.total}}</td>
608
+ </tr>
609
+ </table>
677
610
  </div>
678
611
  </div>
679
- <div class="line"></div>
680
612
  <div class="text2">
681
613
  <div class="subheading">
682
614
  Please complete the payment at the earliest for the continuation of our
@@ -100,8 +100,8 @@
100
100
  <p style="margin-top: 0px;margin-bottom: 0px;"><a class="o_text-white"
101
101
  href="https://tangoeye.ai/"
102
102
  style="text-decoration: none;outline: none;color: #ffffff;"><img
103
- src="https://devtangoretail-api.tangoeye.ai/logo.png"
104
- width="200" height="100" alt="SimpleApp"
103
+ src="https://devtangoretail-api.tangoeye.ai/logo.png" width="200" height="100"
104
+ alt="SimpleApp"
105
105
  style="-ms-interpolation-mode: bicubic;vertical-align: middle;border: 0;line-height: 100%;height: auto;outline: none;text-decoration: none;"></a>
106
106
  </p>
107
107
  </td>
@@ -145,162 +145,72 @@
145
145
  </td>
146
146
  </tr>
147
147
  <tr>
148
- <td align="center" bgcolor="#dbe5ea" style="padding:0px 10px 0 10px;">
149
- <table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 680px;">
150
- <tr>
151
- <td align="left" bgcolor="#ffffff"
152
- style="padding-left: 30px;padding-right: 24px;padding-top:10px; font-size: 16px; line-height: 24px;font-weight:400;color:#384860">
153
- <p style="margin: 0;">Description
154
- </p>
155
- </td>
156
- <td align="left" bgcolor="#ffffff"
157
- style="padding-left: 30px;padding-right: 24px;padding-top:10px; font-size: 16px; line-height: 24px;font-weight:400;color:#384860">
158
- <p style="margin: 0;">Price
159
- </p>
160
- </td>
161
- <td align="left" bgcolor="#ffffff"
162
- style="padding-left: 30px;padding-right: 24px;padding-top:10px; font-size: 16px; line-height: 24px;font-weight:400;color:#384860">
163
- <p style="margin: 0;">Stores
164
- </p>
165
- </td>
166
- <td align="left" bgcolor="#ffffff"
167
- style="padding-left: 30px;padding-right: 24px;padding-top:10px; font-size: 16px; line-height: 24px;font-weight:400;color:#384860">
168
- <p style="margin: 0;">Amount
169
- </p>
170
- </td>
148
+ <td align="center" bgcolor="#dbe5ea" style="padding:0 10px 0 10px">
149
+ <table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0" width="100%"
150
+ style="max-width: 680px;">
151
+ <tr bgcolor="#ffffff"
152
+ style="border:none;height:40px;margin-top:10px;text-align:left">
153
+ <th style="width:300px;padding-left:30px;">Description</th>
154
+ <th style="width:120px;">Price</th>
155
+ <th style="width:120px;">Stores</th>
156
+ <th style="width:120px;">Total Amount</th>
171
157
  </tr>
172
- <tr>
173
- <td align="left" bgcolor="#ffffff"
174
- style="padding-left: 30px;padding-right: 24px;padding-top:10px; font-size: 16px; line-height: 24px;font-weight:400;color:#384860">
175
- <p style="margin: 0;">Traffic
176
- </p>
177
- </td>
178
- <td align="left" bgcolor="#ffffff"
179
- style="padding-left: 30px;padding-right: 24px;padding-top:10px; font-size: 16px; line-height: 24px;font-weight:400;color:#384860">
180
- <p style="margin: 0;">$0
181
- </p>
182
- </td>
183
- <td align="left" bgcolor="#ffffff"
184
- style="padding-left: 30px;padding-right: 24px;padding-top:10px; font-size: 16px; line-height: 24px;font-weight:400;color:#384860">
185
- <p style="margin: 0;">1
186
- </p>
187
- </td>
188
- <td align="left" bgcolor="#ffffff"
189
- style="padding-left: 30px;padding-right: 24px;padding-top:10px; font-size: 16px; line-height: 24px;font-weight:400;color:#384860">
190
- <p style="margin: 0;">$0
191
- </p>
192
- </td>
158
+ {{#each data.products}}
159
+ <tr bgcolor="#ffffff" style="border:none;margin-top:10px;">
160
+ <td style="padding-left:30px;">{{productName}}</td>
161
+ <td>{{../data.currencyType}} {{basePrice}}</td>
162
+ <td>{{storeCount}}</td>
163
+ <td>{{../data.currencyType}} {{price}}</td>
193
164
  </tr>
165
+ {{/each}}
194
166
  <tr>
195
167
  <td align="left" bgcolor="#ffffff"
196
- style="padding-left: 30px;padding-right: 24px;padding-top:10px; font-size: 16px; line-height: 24px;font-weight:400;color:#384860">
197
- <p style="margin: 0;">Sub Total
198
- </p>
199
- </td>
200
- <td align="left" bgcolor="#ffffff"
201
- style="padding-left: 30px;padding-right: 24px;padding-top:10px; font-size: 16px; line-height: 24px;font-weight:400;color:#384860">
202
- <p style="margin: 0;">
203
- </p>
204
- </td>
205
- <td align="left" bgcolor="#ffffff"
206
- style="padding-left: 30px;padding-right: 24px;padding-top:10px; font-size: 16px; line-height: 24px;font-weight:400;color:#384860">
207
- <p style="margin: 0;">
208
- </p>
209
- </td>
210
- <td align="left" bgcolor="#ffffff"
211
- style="padding-left: 30px;padding-right: 24px;padding-top:10px; font-size: 16px; line-height: 24px;font-weight:400;color:#384860">
212
- <p style="margin: 0;">$0
168
+ style="padding-left: 30px;padding-right: 24px; font-size: 14px; line-height: 24px;">
169
+ <p class="o_heading o_mb-xxs"
170
+ style="width: 624px;height: 0px;border: 1px solid #CBD5E1;flex: none;order: 1;flex-grow: 0;">
213
171
  </p>
214
172
  </td>
215
173
  </tr>
216
- <tr>
217
- <td align="left" bgcolor="#ffffff"
218
- style="padding-left: 30px;padding-right: 24px;padding-top:10px; font-size: 16px; line-height: 24px;font-weight:400;color:#384860">
219
- <p style="margin: 0;">IGST
220
- </p>
221
- </td>
222
- <td align="left" bgcolor="#ffffff"
223
- style="padding-left: 30px;padding-right: 24px;padding-top:10px; font-size: 16px; line-height: 24px;font-weight:400;color:#384860">
224
- <p style="margin: 0;">
225
- </p>
226
- </td>
227
- <td align="left" bgcolor="#ffffff"
228
- style="padding-left: 30px;padding-right: 24px;padding-top:10px; font-size: 16px; line-height: 24px;font-weight:400;color:#384860">
229
- <p style="margin: 0;">
230
- </p>
231
- </td>
232
- <td align="left" bgcolor="#ffffff"
233
- style="padding-left: 30px;padding-right: 24px;padding-top:10px; font-size: 16px; line-height: 24px;font-weight:400;color:#384860">
234
- <p style="margin: 0;">$0
235
- </p>
236
- </td>
174
+ <tr bgcolor="#ffffff"
175
+ style="border:none;margin-top:0px;">
176
+ <td style="padding-left:30px;">Sub Total</td>
177
+ <td></td>
178
+ <td></td>
179
+ <td>{{data.currencyType}} {{data.amount}}</td>
237
180
  </tr>
238
- <tr>
239
- <td align="left" bgcolor="#ffffff"
240
- style="padding-left: 30px;padding-right: 24px;padding-top:10px; font-size: 16px; line-height: 24px;font-weight:400;color:#384860">
241
- <p style="margin: 0;">Total
242
- </p>
243
- </td>
244
- <td align="left" bgcolor="#ffffff"
245
- style="padding-left: 30px;padding-right: 24px;padding-top:10px; font-size: 16px; line-height: 24px;font-weight:400;color:#384860">
246
- <p style="margin: 0;">
247
- </p>
248
- </td>
249
- <td align="left" bgcolor="#ffffff"
250
- style="padding-left: 30px;padding-right: 24px;padding-top:10px; font-size: 16px; line-height: 24px;font-weight:400;color:#384860">
251
- <p style="margin: 0;">
252
- </p>
253
- </td>
254
- <td align="left" bgcolor="#ffffff"
255
- style="padding-left: 30px;padding-right: 24px;padding-top:10px; font-size: 16px; line-height: 24px;font-weight:400;color:#384860">
256
- <p style="margin: 0;">$0
257
- </p>
258
- </td>
181
+ <tr bgcolor="#ffffff" style="border:none;margin-top:0px;">
182
+ <td style="padding-left:30px;">IGST</td>
183
+ <td></td>
184
+ <td></td>
185
+ <td>0%</td>
259
186
  </tr>
260
- <tr>
261
- <td align="left" bgcolor="#ffffff"
262
- style="padding-left: 30px;padding-right: 24px;padding-top:10px; font-size: 16px; line-height: 24px;font-weight:400;color:#384860">
263
- <p style="margin: 0;">Discount
264
- </p>
265
- </td>
266
- <td align="left" bgcolor="#ffffff"
267
- style="padding-left: 30px;padding-right: 24px;padding-top:10px; font-size: 16px; line-height: 24px;font-weight:400;color:#384860">
268
- <p style="margin: 0;">
269
- </p>
270
- </td>
271
- <td align="left" bgcolor="#ffffff"
272
- style="padding-left: 30px;padding-right: 24px;padding-top:10px; font-size: 16px; line-height: 24px;font-weight:400;color:#384860">
273
- <p style="margin: 0;">
274
- </p>
275
- </td>
276
- <td align="left" bgcolor="#ffffff"
277
- style="padding-left: 30px;padding-right: 24px;padding-top:10px; font-size: 16px; line-height: 24px;font-weight:400;color:#384860">
278
- <p style="margin: 0;">$0
279
- </p>
280
- </td>
187
+ <tr bgcolor="#ffffff" style="border:none;margin-top:0px;">
188
+ <td style="padding-left:30px;">Total</td>
189
+ <td></td>
190
+ <td></td>
191
+ <td>{{data.currencyType}} {{data.total}}</td>
192
+ </tr>
193
+ <tr bgcolor="#ffffff" style="border:none;margin-top:0px;">
194
+ <td style="padding-left:30px;">Discount</td>
195
+ <td></td>
196
+ <td></td>
197
+ <td>{{data.discount}}%</td>
281
198
  </tr>
282
199
  <tr>
283
200
  <td align="left" bgcolor="#ffffff"
284
- style="padding-left: 30px;padding-right: 24px;padding-top:10px; font-size: 16px; line-height: 24px;font-weight:400;color:#384860">
285
- <p style="margin: 0;">Final Value
286
- </p>
287
- </td>
288
- <td align="left" bgcolor="#ffffff"
289
- style="padding-left: 30px;padding-right: 24px;padding-top:10px; font-size: 16px; line-height: 24px;font-weight:400;color:#384860">
290
- <p style="margin: 0;">
291
- </p>
292
- </td>
293
- <td align="left" bgcolor="#ffffff"
294
- style="padding-left: 30px;padding-right: 24px;padding-top:10px; font-size: 16px; line-height: 24px;font-weight:400;color:#384860">
295
- <p style="margin: 0;">
296
- </p>
297
- </td>
298
- <td align="left" bgcolor="#ffffff"
299
- style="padding-left: 30px;padding-right: 24px;padding-top:10px; font-size: 16px; line-height: 24px;font-weight:400;color:#384860">
300
- <p style="margin: 0;">$0
201
+ style="padding-left: 30px;padding-right: 24px; font-size: 14px; line-height: 24px;">
202
+ <p class="o_heading o_mb-xxs"
203
+ style="width: 624px;height: 0px;border: 1px solid #CBD5E1;flex: none;order: 1;flex-grow: 0;">
301
204
  </p>
302
205
  </td>
303
206
  </tr>
207
+ <tr bgcolor="#ffffff"
208
+ style="border:none;margin-top:10px;">
209
+ <td style="padding-left:30px;">Final Value</td>
210
+ <td></td>
211
+ <td></td>
212
+ <td>{{data.currencyType}} {{data.total}}</td>
213
+ </tr>
304
214
  </table>
305
215
  </td>
306
216
  </tr>
@@ -157,5 +157,6 @@ paymentSubscriptionRouter.get( '/trialExpiredList', paymentController.getExpired
157
157
  paymentSubscriptionRouter.post( '/invoiceDownload/:invoiceId', paymentController.invoiceDownload );
158
158
  paymentSubscriptionRouter.post( '/invoiceStatusUpdate/:invoiceId', validate( validationDtos.invoiceUpdateParams ), paymentController.updateInvoiceStatus );
159
159
  paymentSubscriptionRouter.post( '/invoice/create', validateClient, paymentController.invoiceCreate );
160
- paymentSubscriptionRouter.post( '/dailyPricing/insert', validate( validationDtos.dailyPricingParams ), paymentController.dailyPricingInsert );
161
160
  paymentSubscriptionRouter.post( '/invoiceGenerate', validate( validationDtos.invoiceGenerateParams ), paymentController.invoiceGenerate );
161
+ paymentSubscriptionRouter.post( '/dailyPricing/insert', validate( validationDtos.dailyPricingParams ), paymentController.dailyPricingInsert );
162
+ paymentSubscriptionRouter.get( '/invoiceRevised/:invoiceId', validate( validationDtos.invoiceRevisedParams ), paymentController.invoiceRevised );