tango-app-api-payment-subscription 3.0.38-dev → 3.0.40-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.38-dev",
3
+ "version": "3.0.40-dev",
4
4
  "description": "paymentSubscription",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -25,8 +25,8 @@
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.83",
29
- "tango-app-api-middleware": "^1.0.54-dev",
28
+ "tango-api-schema": "^2.0.89",
29
+ "tango-app-api-middleware": "^1.0.58-dev",
30
30
  "winston": "^3.12.0",
31
31
  "winston-daily-rotate-file": "^5.0.0"
32
32
  },
@@ -16,6 +16,7 @@ import path from 'path';
16
16
  import { JSDOM } from 'jsdom';
17
17
  import pdfMake from 'pdfmake';
18
18
  import htmlToPdfmake from 'html-to-pdfmake';
19
+ import axios from 'axios';
19
20
 
20
21
  export const addBilling = async ( req, res ) => {
21
22
  try {
@@ -323,7 +324,7 @@ async function calculatePricing( req, res ) {
323
324
  }
324
325
  finalPrice = Math.ceil( finalPrice / 10 ) * 10; // for round off to 10 position
325
326
  if ( input.currencyType && input.currencyType == 'dollar' ) {
326
- dollerprice = ( ( finalPrice * 50 ) / 100 );
327
+ let dollerprice = ( ( finalPrice * 50 ) / 100 );
327
328
  finalPrice = ( dollerprice + finalPrice ) / 84;
328
329
  dollerpriceOriginal = ( ( OriginalPrice * 50 ) / 100 );
329
330
  OriginalPrice = ( dollerpriceOriginal + OriginalPrice ) / 84;
@@ -695,7 +696,7 @@ export const invoiceDetails = async ( req, res ) => {
695
696
 
696
697
  export const updateInvoiceDetails = async ( req, res ) => {
697
698
  try {
698
- let clientInvoiceDetails = await paymentService.findOne( { clientId: req.params.clientId, status: 'active' }, { paymentInvoice: 1 } );
699
+ let clientInvoiceDetails = await paymentService.findOne( { clientId: req.params.clientId }, { paymentInvoice: 1 } );
699
700
  if ( !clientInvoiceDetails ) {
700
701
  return res.sendError( 'no data found', 204 );
701
702
  }
@@ -1053,6 +1054,15 @@ export const productSubscribe = async ( req, res ) => {
1053
1054
  }
1054
1055
  clientInfo.planDetails.product = product;
1055
1056
  clientInfo.save().then( async () => {
1057
+ let storeProduct = await storeService.find( { clientId: clientInfo.clientId }, { _id: 0, storeId: 1, product: 1 } );
1058
+ storeProduct = storeProduct.map( ( item ) => {
1059
+ return { id: item.storeId, product: item.product };
1060
+ } );
1061
+ await axios.post( `${appConfig.url.oldapidomain}/oldBulkStoreUpdate`, storeProduct, { headers: { Authorization: 'Bearer d47433f8-9a33-47c7-ba43-1a0fbac28f66' } } ).then( ( response ) => {
1062
+ logger.info( 'store Updated Successfully' );
1063
+ } ).catch( ( error ) => {
1064
+ logger.error( { error: error, function: 'oldBulkStoreUpdate' } );
1065
+ } );
1056
1066
  updatePricing( req, res, true );
1057
1067
  } );
1058
1068
  const logObj = {
@@ -1570,6 +1580,11 @@ export const invoiceList = async ( req, res ) => {
1570
1580
  delete item.products;
1571
1581
  } );
1572
1582
  }
1583
+ invoiceDetails[0].data.forEach( ( item ) => {
1584
+ if ( req.body?.client?.paymentInvoice?.currencyType == 'dollar' ) {
1585
+ item.amount = convertINRtoUSD( item.amount );
1586
+ }
1587
+ } );
1573
1588
  let data = {
1574
1589
  data: invoiceDetails[0].data,
1575
1590
  count: invoiceDetails[0].count[0].count,
@@ -1585,12 +1600,13 @@ export const invoiceList = async ( req, res ) => {
1585
1600
  if ( item.status == 'free' ) {
1586
1601
  item.amount = 'Free';
1587
1602
  }
1603
+ item.products = item.products.map( ( item ) => item.product.product );
1588
1604
  exportData.push( {
1589
1605
  'Invoice': item.invoice,
1590
1606
  'Billing Date': item.billingDate,
1591
1607
  'Stores': item.stores,
1592
1608
  ...( req.user.userType == 'tango' ? { 'Products': item.products } : {} ),
1593
- 'Amount': item.amount,
1609
+ 'Amount': req.body?.client?.paymentInvoice?.currencyType == 'dollar' ? item.amount : item.amount,
1594
1610
  ...( req.user.userType == 'client' ? { 'Payment Method': item.paymentMethod } : {} ),
1595
1611
  'Status': item.status,
1596
1612
  } );
@@ -1685,8 +1701,8 @@ export const priceList = async ( req, res ) => {
1685
1701
  } );
1686
1702
  } );
1687
1703
  data = temp;
1688
- let discountPrice = totalProductPrice - totalnegotiatePrice;
1689
- let discountPercentage = discountPrice > 0 ? ( discountPrice / totalProductPrice ) * 100 : 0;
1704
+ let discountPrice = originalTotalPrice - discountTotalPrice;
1705
+ let discountPercentage = discountPrice > 0 ? ( discountPrice / originalTotalPrice ) * 100 : 0;
1690
1706
  let gstAmount = discountTotalPrice * ( 18 / 100 );
1691
1707
  let finalValue = parseFloat( discountTotalPrice ) + gstAmount;
1692
1708
  let result = {
@@ -1728,6 +1744,11 @@ export const pricingListUpdate = async ( req, res ) => {
1728
1744
  if ( req.body?.products && req.body?.products?.length ) {
1729
1745
  productList = JSON.parse( JSON.stringify( req.body ) );
1730
1746
  let amount =0;
1747
+ let origPrice=0;
1748
+ let IGST = 18;
1749
+ let CGST = 9;
1750
+ let SGST = 9;
1751
+ let gst = req.body.client.paymentInvoice.currencyType == 'dollar' ? IGST : ( CGST + SGST );
1731
1752
  productList.products.forEach( ( item ) => {
1732
1753
  let [ firstWord, secondWord ] = item.productName.replace( /([a-z])([A-Z])/g, '$1 $2' ).split( ' ' );
1733
1754
  firstWord = firstWord.charAt( 0 ).toUpperCase() + firstWord.slice( 1 );
@@ -1736,17 +1757,28 @@ export const pricingListUpdate = async ( req, res ) => {
1736
1757
  item.basePrice = convertINRtoUSD( item.basePrice );
1737
1758
  item.price = convertINRtoUSD( item.price );
1738
1759
  }
1739
- if ( req.body.client.priceType == 'step' ) {
1760
+ let count = item.storeCount;
1761
+ if ( req.body.type == 'step' ) {
1740
1762
  item.storeCount = item.storeRange;
1763
+ let rangeSplit = item.storeRange.split( '-' );
1764
+ count = parseInt( rangeSplit[1] ) - parseInt( rangeSplit[0] );
1741
1765
  }
1742
1766
  amount = amount + item.price;
1767
+ origPrice = origPrice + ( item.basePrice * count );
1768
+ item.price = item.price.toFixed( 2 );
1743
1769
  } );
1770
+ let discountAmount = origPrice - amount;
1771
+ let discountPercentage = ( discountAmount / origPrice ) * 100;
1744
1772
  productList = {
1745
1773
  ...productList,
1746
- amount: amount,
1774
+ amount: amount.toFixed( 2 ),
1747
1775
  currencyType: req.body.client.paymentInvoice.currencyType == 'dollar' ? '$' : '₹',
1748
1776
  total: amount.toFixed( 2 ),
1749
- discount: 0,
1777
+ final: ( parseFloat( amount ) + parseFloat( ( amount * gst ) / 100 ) ).toFixed( 2 ),
1778
+ discount: `${discountPercentage.toFixed( 2 )}% (-${discountAmount.toFixed( 2 )})`,
1779
+ IGST: req.body.client.paymentInvoice.currencyType == 'dollar' ? IGST : 0,
1780
+ CGST: req.body.client.paymentInvoice.currencyType == 'inr' ? CGST : 0,
1781
+ SGST: req.body.client.paymentInvoice.currencyType == 'inr' ? SGST : 0,
1750
1782
  };
1751
1783
  req.body.products.forEach( ( item ) => {
1752
1784
  delete item.originalPrice;
@@ -1767,24 +1799,26 @@ export const pricingListUpdate = async ( req, res ) => {
1767
1799
  getPriceInfo.step = req.body.products;
1768
1800
  }
1769
1801
  getPriceInfo.save().then( async () => {
1770
- let clientDetails = await paymentService.findOne( { clientId: req.body.clientId }, { priceType: 1 } );
1802
+ let clientDetails = await paymentService.findOne( { clientId: req.body.clientId }, { priceType: 1, paymentInvoice: 1 } );
1771
1803
  clientDetails.priceType = req.body.type;
1772
1804
 
1773
1805
  clientDetails.save();
1774
1806
 
1775
- let userDetails= await userService.findOne( { clientId: req.body.clientId, role: 'superadmin' } );
1776
- if ( userDetails ) {
1777
- const templateHtml = fs.readFileSync( path.resolve( path.dirname( '' ) ) + '/src/hbs/revisedPriceEmail.hbs', 'utf8' );
1778
- const template = Handlebars.compile( templateHtml );
1779
- const html = template( { data: productList } );
1780
- let params = {
1781
- toEmail: userDetails.email,
1782
- mailSubject: 'Invoice Revised',
1783
- htmlBody: html,
1784
- attachment: '',
1785
- sourceEmail: appConfig.cloud.aws.ses.adminEmail,
1786
- };
1787
- sendEmailWithSES( params.toEmail, params.mailSubject, params.htmlBody, params.attachment, params.sourceEmail );
1807
+ // let userDetails= await userService.findOne( { clientId: req.body.clientId, role: 'superadmin' } );
1808
+ if ( clientDetails?.paymentInvoice?.paymentAgreementTo?.length ) {
1809
+ clientDetails.paymentInvoice.paymentAgreementTo.forEach( ( email ) => {
1810
+ const templateHtml = fs.readFileSync( path.resolve( path.dirname( '' ) ) + '/src/hbs/revisedPriceEmail.hbs', 'utf8' );
1811
+ const template = Handlebars.compile( templateHtml );
1812
+ const html = template( { data: productList } );
1813
+ let params = {
1814
+ toEmail: email,
1815
+ mailSubject: 'Invoice Revised',
1816
+ htmlBody: html,
1817
+ attachment: '',
1818
+ sourceEmail: appConfig.cloud.aws.ses.adminEmail,
1819
+ };
1820
+ sendEmailWithSES( params.toEmail, params.mailSubject, params.htmlBody, params.attachment, params.sourceEmail );
1821
+ } );
1788
1822
  }
1789
1823
  let keys = [];
1790
1824
  if ( req.body.type == 'standard' ) {
@@ -1819,7 +1853,7 @@ async function updatePricing( req, res, update ) {
1819
1853
  let clientDetails = await paymentService.findOne( { clientId: req.body.clientId } );
1820
1854
  if ( clientDetails ) {
1821
1855
  let products = clientDetails.planDetails.product.map( ( item ) => item.productName );
1822
- let subscriptionCount = clientDetails.planDetails.product.map( ( item ) => item.status == 'live' );
1856
+ let subscriptionProduct = clientDetails.planDetails.product.filter( ( item ) => item.status == 'live' );
1823
1857
  let standardList = [];
1824
1858
  let stepList = [];
1825
1859
  products.forEach( ( product ) => {
@@ -1856,7 +1890,11 @@ async function updatePricing( req, res, update ) {
1856
1890
  }
1857
1891
  let product = [];
1858
1892
  let clientId = req.body.clientId;
1893
+ let paymentInvoice = clientDetails.paymentInvoice;
1859
1894
  if ( !update ) {
1895
+ let userDetails= await userService.findOne( { clientId: invoiceDetails.clientId, role: 'superadmin' } );
1896
+ paymentInvoice.invoiceTo = [ userDetails.email ];
1897
+ paymentInvoice.paymentAgreementTo = [ userDetails.email ];
1860
1898
  clientDetails.planDetails.product.forEach( ( item ) => {
1861
1899
  product.push( {
1862
1900
  productName: item.productName,
@@ -1877,7 +1915,7 @@ async function updatePricing( req, res, update ) {
1877
1915
  };
1878
1916
  let pricingDetails = await calculatePricing( req, res );
1879
1917
  let paymentStatus = clientDetails?.subscriptionType == 'free' ? 'free' : 'trial';
1880
- if ( subscriptionCount ) {
1918
+ if ( subscriptionProduct.length ) {
1881
1919
  let invoiceCount = await invoiceService.count( { clientId: req.params.clientId, status: 'pending' } );
1882
1920
  if ( invoiceCount ) {
1883
1921
  paymentStatus ='due';
@@ -1890,6 +1928,7 @@ async function updatePricing( req, res, update ) {
1890
1928
  'planDetails.paymentStatus': clientDetails?.subscriptionType == 'free' ? 'free' : paymentStatus,
1891
1929
  'planDetails.product': product,
1892
1930
  'price': pricingDetails.price,
1931
+ 'paymentInvoice': paymentInvoice,
1893
1932
  };
1894
1933
  await paymentService.updateOne( { clientId: clientId }, details );
1895
1934
  }
@@ -1905,11 +1944,15 @@ export const updatedRevisedPrice = async ( req, res ) => {
1905
1944
  invoiceDetails.revisedAmount = req.body.revisedAmount;
1906
1945
  invoiceDetails.discount = req.body.discount;
1907
1946
  invoiceDetails.save().then( async () => {
1908
- let userDetails= await userService.findOne( { clientId: invoiceDetails.clientId, role: 'superadmin' } );
1909
- if ( userDetails ) {
1947
+ let clientDetails = await paymentService.findOne( { clientId: invoiceDetails.clientId } );
1948
+ // let userDetails= await userService.findOne( { clientId: invoiceDetails.clientId, role: 'superadmin' } );
1949
+ if ( clientDetails.paymentInvoice.invoiceTo.length ) {
1910
1950
  let invoiceInfo;
1911
- let clientDetails = await paymentService.findOne( { clientId: invoiceDetails.clientId } );
1912
1951
  let amount = 0;
1952
+ let IGST = 18;
1953
+ let CGST = 9;
1954
+ let SGST = 9;
1955
+ let gst = clientDetails?.paymentInvoice?.currencyType == 'dollar' ? IGST : ( CGST + SGST );
1913
1956
  invoiceDetails.products.forEach( ( item ) => {
1914
1957
  let [ firstWord, secondWord ] = item.product.product.replace( /([a-z])([A-Z])/g, '$1 $2' ).split( ' ' );
1915
1958
  firstWord = firstWord.charAt( 0 ).toUpperCase() + firstWord.slice( 1 );
@@ -1926,6 +1969,7 @@ export const updatedRevisedPrice = async ( req, res ) => {
1926
1969
  let invoiceDate= dayjs( invoiceDetails.createdAt ).format( 'DD MMM, YYYY' );
1927
1970
  let days = clientDetails?.paymentInvoice?.extendPaymentPeriodDays || 10;
1928
1971
  let dueDate = invoiceDetails?.dueDate ? dayjs( invoiceDetails?.dueDate ).format( 'DD MMM, YYYY' ) : dayjs().add( days, 'days' ).format( 'DD MMM, YYYY' );
1972
+ let discountAmount = ( amount * req.body.discount ) / 100;
1929
1973
  invoiceInfo = {
1930
1974
  ...invoiceDetails._doc,
1931
1975
  clientName: clientDetails.clientName,
@@ -1933,22 +1977,28 @@ export const updatedRevisedPrice = async ( req, res ) => {
1933
1977
  address: clientDetails.billingDetails.billingAddress,
1934
1978
  amount: amount.toFixed( 2 ),
1935
1979
  currencyType: clientDetails.paymentInvoice.currencyType == 'dollar' ? '$' : '₹',
1936
- discount: req.body.discount,
1937
- total: req.body.revisedAmount.toFixed( 2 ),
1980
+ discount: `${req.body.discount.toFixed( 2 )}% (-${discountAmount.toFixed( 2 )})`,
1981
+ total: ( parseFloat( amount ) + parseFloat( ( amount * gst ) / 100 ) ).toFixed( 2 ),
1982
+ final: req.body.revisedAmount.toFixed( 2 ),
1983
+ IGST: clientDetails.paymentInvoice.currencyType == 'dollar' ? IGST : 0,
1984
+ CGST: clientDetails.paymentInvoice.currencyType == 'inr' ? CGST : 0,
1985
+ SGST: clientDetails.paymentInvoice.currencyType == 'inr' ? SGST : 0,
1938
1986
  invoiceDate,
1939
1987
  dueDate,
1940
1988
  };
1941
- const templateHtml = fs.readFileSync( path.resolve( path.dirname( '' ) ) + '/src/hbs/trialCreditNoteEmail.hbs', 'utf8' );
1942
- const template = Handlebars.compile( templateHtml );
1943
- const html = template( { data: invoiceInfo } );
1944
- let params = {
1945
- toEmail: userDetails.email,
1946
- mailSubject: 'Credit Note',
1947
- htmlBody: html,
1948
- attachment: '',
1949
- sourceEmail: appConfig.cloud.aws.ses.adminEmail,
1950
- };
1951
- sendEmailWithSES( params.toEmail, params.mailSubject, params.htmlBody, params.attachment, params.sourceEmail );
1989
+ clientDetails.paymentInvoice.invoiceTo.forEach( ( email ) => {
1990
+ const templateHtml = fs.readFileSync( path.resolve( path.dirname( '' ) ) + '/src/hbs/trialCreditNoteEmail.hbs', 'utf8' );
1991
+ const template = Handlebars.compile( templateHtml );
1992
+ const html = template( { data: invoiceInfo } );
1993
+ let params = {
1994
+ toEmail: email,
1995
+ mailSubject: 'Credit Note',
1996
+ htmlBody: html,
1997
+ attachment: '',
1998
+ sourceEmail: appConfig.cloud.aws.ses.adminEmail,
1999
+ };
2000
+ sendEmailWithSES( params.toEmail, params.mailSubject, params.htmlBody, params.attachment, params.sourceEmail );
2001
+ } );
1952
2002
  }
1953
2003
  const logObj = {
1954
2004
  clientId: req.body.clientId,
@@ -192,39 +192,55 @@ export const validateUpdateSubscriptionParams = {
192
192
  body: validateUpdateSubscriptionSchema,
193
193
  };
194
194
 
195
- export const dailyPricingSchema = {
195
+ export const dailyPricingSchema = joi.object( {
196
196
  clientId: joi.array().required(),
197
197
  date: joi.string().required(),
198
- };
198
+ } );
199
199
 
200
200
  export const dailyPricingParams = {
201
201
  body: dailyPricingSchema,
202
202
  };
203
203
 
204
- export const invoiceGenerateSchema = {
204
+ export const invoiceGenerateSchema = joi.object( {
205
205
  clientId: joi.array().required(),
206
206
  fromDate: joi.string().required(),
207
207
  toDate: joi.string().required(),
208
- };
208
+ } );
209
209
 
210
210
  export const invoiceGenerateParams = {
211
211
  body: invoiceGenerateSchema,
212
212
  };
213
213
 
214
- export const invoiceUpdateSchema = {
214
+ export const invoiceUpdateSchema = joi.object( {
215
215
  amount: joi.number().required(),
216
216
  paymentType: joi.string().required(),
217
217
  paymentReferenceId: joi.string().required(),
218
- };
218
+ } );
219
+
219
220
  export const invoiceUpdateParams = {
220
221
  body: invoiceUpdateSchema,
221
222
  };
222
223
 
223
224
 
224
- export const invoiceRevisedSchema = {
225
+ export const invoiceRevisedSchema = joi.object( {
225
226
  invoiceId: joi.string().required(),
226
- };
227
+ } );
228
+
227
229
  export const invoiceRevisedParams = {
228
230
  params: invoiceRevisedSchema,
229
231
  };
230
232
 
233
+ export const validateInvoiceUpdateSchema = joi.object( {
234
+ proRate: joi.string().required(),
235
+ paymenttype: joi.string().required(),
236
+ paymentCycle: joi.string().required(),
237
+ currencyType: joi.string().required(),
238
+ invoiceTo: joi.array().items( joi.string().email().message( 'Enter valid Email' ) ).required(),
239
+ paymentAgreementTo: joi.array().items( joi.string().email().message( 'Enter valid Email' ) ).required(),
240
+ invoiceOn: joi.string().required(),
241
+ extendPaymentPeriodDays: joi.number().required(),
242
+ } );
243
+
244
+ export const validateInvoiceUpdateParams = {
245
+ body: validateInvoiceUpdateSchema,
246
+ };
@@ -211,7 +211,19 @@
211
211
  <td class="invoicesub" style="padding-left:30px; line-height: 24px;">IGST</td>
212
212
  <td></td>
213
213
  <td></td>
214
- <td class="invoicesub">0%</td>
214
+ <td class="invoicesub">{{data.IGST}}%</td>
215
+ </tr>
216
+ <tr bgcolor="#ffffff" style="border:none;margin-top:0px;">
217
+ <td class="invoicesub" style="padding-left:30px; line-height: 24px;">CGST</td>
218
+ <td></td>
219
+ <td></td>
220
+ <td class="invoicesub">{{data.CGST}}%</td>
221
+ </tr>
222
+ <tr bgcolor="#ffffff" style="border:none;margin-top:0px;">
223
+ <td class="invoicesub" style="padding-left:30px; line-height: 24px;">SGST</td>
224
+ <td></td>
225
+ <td></td>
226
+ <td class="invoicesub">{{data.SGST}}%</td>
215
227
  </tr>
216
228
  <tr bgcolor="#ffffff" style="border:none;margin-top:0px;">
217
229
  <td class="invoicesub" style="padding-left:30px; line-height: 24px;">Total</td>
@@ -223,7 +235,7 @@
223
235
  <td class="invoicesub" style="padding-left:30px; line-height: 24px;">Discount</td>
224
236
  <td></td>
225
237
  <td></td>
226
- <td class="invoicesub">{{data.discount}}%</td>
238
+ <td class="invoicesub">{{data.discount}}</td>
227
239
  </tr>
228
240
  <tr>
229
241
  <td colspan="4" align="left" bgcolor="#ffffff"
@@ -236,7 +248,7 @@
236
248
  <td class="invoicesub" style="padding-left:30px; ">Final Value</td>
237
249
  <td></td>
238
250
  <td></td>
239
- <td class="invoicesub">{{data.currencyType}} {{data.total}}</td>
251
+ <td class="invoicesub">{{data.currencyType}} {{data.final}}</td>
240
252
  </tr>
241
253
  </table>
242
254
  </td>
@@ -514,7 +514,19 @@
514
514
  <td class="invoicesub">IGST</td>
515
515
  <td></td>
516
516
  <td></td>
517
- <td class="invoicesub">0%</td>
517
+ <td class="invoicesub">{{data.IGST}}%</td>
518
+ </tr>
519
+ <tr style="border:none;margin-top:10px;">
520
+ <td class="invoicesub">CGST</td>
521
+ <td></td>
522
+ <td></td>
523
+ <td class="invoicesub">{{data.CGST}}%</td>
524
+ </tr>
525
+ <tr style="border:none;margin-top:10px;">
526
+ <td class="invoicesub">SGST</td>
527
+ <td></td>
528
+ <td></td>
529
+ <td class="invoicesub">{{data.SGST}}%</td>
518
530
  </tr>
519
531
  <tr style="border:none;margin-top:10px;">
520
532
  <td class="invoicesub">Total</td>
@@ -539,7 +551,7 @@
539
551
  <td class="invoicesub">Final Value</td>
540
552
  <td></td>
541
553
  <td></td>
542
- <td class="invoicesub">{{data.currencyType}} {{data.total}}</td>
554
+ <td class="invoicesub">{{data.currencyType}} {{data.final}}</td>
543
555
  </tr>
544
556
  </table>
545
557
  </td>
@@ -147,7 +147,7 @@
147
147
  <tr>
148
148
  <td align="left" bgcolor="#ffffff"
149
149
  style="padding-left: 26px;padding-right: 24px;padding-top:25px; font-size: 16px; line-height: 24px;font-weight:400;color:#384860">
150
- <p style="margin: 0;">Best, <br>Team Tango,
150
+ <p style="margin: 0;">Best, <br>Team Tango
151
151
  </p>
152
152
  </td>
153
153
  </tr>
@@ -60,7 +60,7 @@ paymentSubscriptionRouter.put( '/update/InvoiceDetails/:clientId', isAllowedSess
60
60
  userType: [ 'tango' ], access: [
61
61
  { featureName: 'settings', name: 'paymentSubscriptions', permissions: [ 'isEdit' ] },
62
62
  ],
63
- } ), validate( validationDtos.validateBrandParams ), paymentController.updateInvoiceDetails );
63
+ } ), validate( validationDtos.validateInvoiceUpdateParams ), paymentController.updateInvoiceDetails );
64
64
 
65
65
  paymentSubscriptionRouter.get( '/admin/notificationList', isAllowedSessionHandler, authorize( {
66
66
  userType: [ 'tango' ], access: [