@silexpert/core 2.0.93 → 2.0.96

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.
Files changed (39) hide show
  1. package/dist/api/resources/Account.d.ts +1 -0
  2. package/dist/api/resources/Account.d.ts.map +1 -1
  3. package/dist/api/resources/Account.js +5 -1
  4. package/dist/api/resources/Account.js.map +1 -1
  5. package/dist/api/resources/Society.d.ts +2 -1
  6. package/dist/api/resources/Society.d.ts.map +1 -1
  7. package/dist/api/resources/Society.js +3 -0
  8. package/dist/api/resources/Society.js.map +1 -1
  9. package/dist/types/Interface/api/kyc/Query.d.ts +1 -0
  10. package/dist/types/Interface/api/kyc/Query.d.ts.map +1 -1
  11. package/dist/types/Interface/api/kyc/Query.js +7 -0
  12. package/dist/types/Interface/api/kyc/Query.js.map +1 -1
  13. package/dist/types/Interface/api/society/CreateTestSociety.d.ts +45 -0
  14. package/dist/types/Interface/api/society/CreateTestSociety.d.ts.map +1 -0
  15. package/dist/types/Interface/api/society/CreateTestSociety.js +137 -0
  16. package/dist/types/Interface/api/society/CreateTestSociety.js.map +1 -0
  17. package/dist/types/index.d.ts +1 -0
  18. package/dist/types/index.d.ts.map +1 -1
  19. package/dist/types/index.js +1 -0
  20. package/dist/types/index.js.map +1 -1
  21. package/dist/utils/acdVat.js +4 -4
  22. package/dist/utils/acdVat.js.map +1 -1
  23. package/dist/utils/commercialManagement/templates/body.d.ts.map +1 -1
  24. package/dist/utils/commercialManagement/templates/body.js +8 -7
  25. package/dist/utils/commercialManagement/templates/body.js.map +1 -1
  26. package/dist/utils/email.js +2 -2
  27. package/dist/utils/email.js.map +1 -1
  28. package/dist/utils/tests/acdVat.spec.js +2 -2
  29. package/dist/utils/tests/acdVat.spec.js.map +1 -1
  30. package/package.json +1 -1
  31. package/ts/api/resources/Account.ts +5 -1
  32. package/ts/api/resources/Society.ts +6 -0
  33. package/ts/types/Interface/api/kyc/Query.ts +5 -0
  34. package/ts/types/Interface/api/society/CreateTestSociety.ts +91 -0
  35. package/ts/types/index.ts +1 -0
  36. package/ts/utils/acdVat.ts +4 -4
  37. package/ts/utils/commercialManagement/templates/body.ts +8 -7
  38. package/ts/utils/email.ts +2 -2
  39. package/ts/utils/tests/acdVat.spec.ts +2 -2
@@ -40,11 +40,11 @@ export function acdVatCodeToIdVat(acdVatCode) {
40
40
  case AcdVatCode.REDUIT_2_1:
41
41
  return Vat.TX_2_1.id;
42
42
  case AcdVatCode.INTRACOM:
43
- // L'information de taux est perdue dans le code ACD, on retombe sur l'intracom a 20% par defaut.
44
- return Vat.INTRACOM_TX_20.id;
43
+ // L'information de taux est perdue dans le code ACD, on retombe sur l'intracom a 0% par defaut.
44
+ return Vat.INTRACOM_WITHOUT_TAXE.id;
45
45
  case AcdVatCode.AUTOL:
46
- // L'information de taux est perdue dans le code ACD, on retombe sur l'importation a 20% par defaut.
47
- return Vat.IMPORTATION_TX_20.id;
46
+ // L'information de taux est perdue dans le code ACD, on retombe sur l'importation a 0% par defaut.
47
+ return Vat.IMPORTATION_WITHOUT_TAXE.id;
48
48
  case AcdVatCode.NON_AFFECTE:
49
49
  case AcdVatCode.ONI:
50
50
  case AcdVatCode.SUR_IMMOBILISATION:
@@ -1 +1 @@
1
- {"version":3,"file":"acdVat.js","sourceRoot":"","sources":["../../ts/utils/acdVat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAE/D,MAAM,UAAU,iBAAiB,CAAC,KAAqB;IACrD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC;IAE7E,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,UAAU,CAAC,WAAW,CAAC;IAChC,CAAC;IAED,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;QACtB,OAAO,UAAU,CAAC,QAAQ,CAAC;IAC7B,CAAC;IAED,IAAI,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACzB,OAAO,UAAU,CAAC,KAAK,CAAC;IAC1B,CAAC;IAED,QAAQ,GAAG,CAAC,KAAK,EAAE,CAAC;QAClB,KAAK,GAAG;YACN,OAAO,UAAU,CAAC,UAAU,CAAC;QAC/B,KAAK,GAAG;YACN,OAAO,UAAU,CAAC,UAAU,CAAC;QAC/B,KAAK,EAAE;YACL,OAAO,UAAU,CAAC,SAAS,CAAC;QAC9B,KAAK,EAAE;YACL,OAAO,UAAU,CAAC,MAAM,CAAC;QAC3B,KAAK,CAAC;YACJ,OAAO,IAAI,CAAC;QACd;YACE,OAAO,UAAU,CAAC,WAAW,CAAC;IAClC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,UAA8B;IAC9D,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,UAAU,CAAC,MAAM;YACpB,OAAO,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,KAAK,UAAU,CAAC,SAAS;YACvB,OAAO,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,KAAK,UAAU,CAAC,UAAU;YACxB,OAAO,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,KAAK,UAAU,CAAC,UAAU;YACxB,OAAO,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,KAAK,UAAU,CAAC,QAAQ;YACtB,iGAAiG;YACjG,OAAO,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;QAC/B,KAAK,UAAU,CAAC,KAAK;YACnB,oGAAoG;YACpG,OAAO,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAClC,KAAK,UAAU,CAAC,WAAW,CAAC;QAC5B,KAAK,UAAU,CAAC,GAAG,CAAC;QACpB,KAAK,UAAU,CAAC,kBAAkB,CAAC;QACnC,KAAK,UAAU,CAAC,OAAO,CAAC;QACxB,KAAK,IAAI,CAAC;QACV,KAAK,SAAS;YACZ,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC","sourcesContent":["import { Vat } from '../types/Enum/Vat.js';\nimport { AcdVatCode } from '../types/Interface/api/acd/Vat.js';\n\nexport function idVatToAcdVatCode(idVat?: number | null): AcdVatCode | null {\n if (!idVat) {\n return null;\n }\n\n const vat = Object.values(Vat).find((currentVat) => currentVat.id === idVat);\n\n if (!vat) {\n return AcdVatCode.NON_AFFECTE;\n }\n\n if (vat.isVatIntracom) {\n return AcdVatCode.INTRACOM;\n }\n\n if (vat.isVatImportation) {\n return AcdVatCode.AUTOL;\n }\n\n switch (vat.value) {\n case 2.1:\n return AcdVatCode.REDUIT_2_1;\n case 5.5:\n return AcdVatCode.REDUIT_5_5;\n case 10:\n return AcdVatCode.REDUIT_10;\n case 20:\n return AcdVatCode.NORMAL;\n case 0:\n return null;\n default:\n return AcdVatCode.NON_AFFECTE;\n }\n}\n\nexport function acdVatCodeToIdVat(acdVatCode?: AcdVatCode | null): number | null {\n switch (acdVatCode) {\n case AcdVatCode.NORMAL:\n return Vat.TX_20.id;\n case AcdVatCode.REDUIT_10:\n return Vat.TX_10.id;\n case AcdVatCode.REDUIT_5_5:\n return Vat.TX_5_5.id;\n case AcdVatCode.REDUIT_2_1:\n return Vat.TX_2_1.id;\n case AcdVatCode.INTRACOM:\n // L'information de taux est perdue dans le code ACD, on retombe sur l'intracom a 20% par defaut.\n return Vat.INTRACOM_TX_20.id;\n case AcdVatCode.AUTOL:\n // L'information de taux est perdue dans le code ACD, on retombe sur l'importation a 20% par defaut.\n return Vat.IMPORTATION_TX_20.id;\n case AcdVatCode.NON_AFFECTE:\n case AcdVatCode.ONI:\n case AcdVatCode.SUR_IMMOBILISATION:\n case AcdVatCode.SPECIAL:\n case null:\n case undefined:\n return null;\n }\n}\n"]}
1
+ {"version":3,"file":"acdVat.js","sourceRoot":"","sources":["../../ts/utils/acdVat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAE/D,MAAM,UAAU,iBAAiB,CAAC,KAAqB;IACrD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC;IAE7E,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,UAAU,CAAC,WAAW,CAAC;IAChC,CAAC;IAED,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;QACtB,OAAO,UAAU,CAAC,QAAQ,CAAC;IAC7B,CAAC;IAED,IAAI,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACzB,OAAO,UAAU,CAAC,KAAK,CAAC;IAC1B,CAAC;IAED,QAAQ,GAAG,CAAC,KAAK,EAAE,CAAC;QAClB,KAAK,GAAG;YACN,OAAO,UAAU,CAAC,UAAU,CAAC;QAC/B,KAAK,GAAG;YACN,OAAO,UAAU,CAAC,UAAU,CAAC;QAC/B,KAAK,EAAE;YACL,OAAO,UAAU,CAAC,SAAS,CAAC;QAC9B,KAAK,EAAE;YACL,OAAO,UAAU,CAAC,MAAM,CAAC;QAC3B,KAAK,CAAC;YACJ,OAAO,IAAI,CAAC;QACd;YACE,OAAO,UAAU,CAAC,WAAW,CAAC;IAClC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,UAA8B;IAC9D,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,UAAU,CAAC,MAAM;YACpB,OAAO,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,KAAK,UAAU,CAAC,SAAS;YACvB,OAAO,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,KAAK,UAAU,CAAC,UAAU;YACxB,OAAO,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,KAAK,UAAU,CAAC,UAAU;YACxB,OAAO,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,KAAK,UAAU,CAAC,QAAQ;YACtB,gGAAgG;YAChG,OAAO,GAAG,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACtC,KAAK,UAAU,CAAC,KAAK;YACnB,mGAAmG;YACnG,OAAO,GAAG,CAAC,wBAAwB,CAAC,EAAE,CAAC;QACzC,KAAK,UAAU,CAAC,WAAW,CAAC;QAC5B,KAAK,UAAU,CAAC,GAAG,CAAC;QACpB,KAAK,UAAU,CAAC,kBAAkB,CAAC;QACnC,KAAK,UAAU,CAAC,OAAO,CAAC;QACxB,KAAK,IAAI,CAAC;QACV,KAAK,SAAS;YACZ,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC","sourcesContent":["import { Vat } from '../types/Enum/Vat.js';\nimport { AcdVatCode } from '../types/Interface/api/acd/Vat.js';\n\nexport function idVatToAcdVatCode(idVat?: number | null): AcdVatCode | null {\n if (!idVat) {\n return null;\n }\n\n const vat = Object.values(Vat).find((currentVat) => currentVat.id === idVat);\n\n if (!vat) {\n return AcdVatCode.NON_AFFECTE;\n }\n\n if (vat.isVatIntracom) {\n return AcdVatCode.INTRACOM;\n }\n\n if (vat.isVatImportation) {\n return AcdVatCode.AUTOL;\n }\n\n switch (vat.value) {\n case 2.1:\n return AcdVatCode.REDUIT_2_1;\n case 5.5:\n return AcdVatCode.REDUIT_5_5;\n case 10:\n return AcdVatCode.REDUIT_10;\n case 20:\n return AcdVatCode.NORMAL;\n case 0:\n return null;\n default:\n return AcdVatCode.NON_AFFECTE;\n }\n}\n\nexport function acdVatCodeToIdVat(acdVatCode?: AcdVatCode | null): number | null {\n switch (acdVatCode) {\n case AcdVatCode.NORMAL:\n return Vat.TX_20.id;\n case AcdVatCode.REDUIT_10:\n return Vat.TX_10.id;\n case AcdVatCode.REDUIT_5_5:\n return Vat.TX_5_5.id;\n case AcdVatCode.REDUIT_2_1:\n return Vat.TX_2_1.id;\n case AcdVatCode.INTRACOM:\n // L'information de taux est perdue dans le code ACD, on retombe sur l'intracom a 0% par defaut.\n return Vat.INTRACOM_WITHOUT_TAXE.id;\n case AcdVatCode.AUTOL:\n // L'information de taux est perdue dans le code ACD, on retombe sur l'importation a 0% par defaut.\n return Vat.IMPORTATION_WITHOUT_TAXE.id;\n case AcdVatCode.NON_AFFECTE:\n case AcdVatCode.ONI:\n case AcdVatCode.SUR_IMMOBILISATION:\n case AcdVatCode.SPECIAL:\n case null:\n case undefined:\n return null;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../../../ts/utils/commercialManagement/templates/body.ts"],"names":[],"mappings":"AAoEA,eAAO,MAAM,YAAY,QAiEjB,CAAC"}
1
+ {"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../../../ts/utils/commercialManagement/templates/body.ts"],"names":[],"mappings":"AAoEA,eAAO,MAAM,YAAY,QAkEjB,CAAC"}
@@ -100,13 +100,14 @@ export const bodyTemplate = `<html class="pdf-content">
100
100
  <% if ((settings && (settings.iban || settings.bic || settings.bank)) || paymentType) { %>
101
101
  <div class="row mt-30 space-between" style="page-break-inside: avoid !important;">
102
102
  <div>
103
- <% if ((settings && (settings.iban || settings.bic || settings.bank)) || paymentType) { %>
104
- <% if(paymentType) { %><%= languageTemplate.template.common.options.paymentType %> : <%= paymentType %><br/>
105
- <% if (!['Carte bancaire', 'Espèces', 'Chèque'].includes(paymentType)) { %>
106
- <% if(settings.bank) { %><%= languageTemplate.template.common.options.bank %> : <%= settings.bank %><br/><% } %>
107
- <% if(settings.iban) { %>IBAN : <%= settings.iban %><br/><% } %>
108
- <% if(settings.bic) { %>BIC : <%= settings.bic %><% } %>
109
- <% } %>
103
+ <% if (paymentType) { %>
104
+ <%= languageTemplate.template.common.options.paymentType %> : <%= paymentType %><br/>
105
+ <% } %>
106
+ <% if (!paymentType || !['Carte bancaire', 'Espèces', 'Chèque'].includes(paymentType)) { %>
107
+ <% if (settings) { %>
108
+ <% if(settings.bank) { %><%= languageTemplate.template.common.options.bank %> : <%= settings.bank %><br/><% } %>
109
+ <% if(settings.iban) { %>IBAN : <%= settings.iban %><br/><% } %>
110
+ <% if(settings.bic) { %>BIC : <%= settings.bic %><% } %>
110
111
  <% } %>
111
112
  <% } %>
112
113
  </div>
@@ -1 +1 @@
1
- {"version":3,"file":"body.js","sourceRoot":"","sources":["../../../../ts/utils/commercialManagement/templates/body.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM,cAAc,GAAG,IAAI,4BAA4B,EAAE,CAAC;AAE1D,MAAM,cAAc,GAAG;;;YAGX,cAAc,CAAC,IAAI;YACnB,cAAc,CAAC,OAAO;;;4CAGU,cAAc,CAAC,OAAO;UACxD,cAAc,CAAC,IAAI;;;;;;;yCAOY,mBAAmB,CAAC,GAAG;;gDAEhB,mBAAmB,CAAC,KAAK;;gDAEzB,mBAAmB,CAAC,OAAO;;gDAE3B,mBAAmB,CAAC,KAAK;;gDAEzB,mBAAmB,CAAC,KAAK;;gDAEzB,mBAAmB,CAAC,OAAO;;;;;mDAKxB,mBAAmB,CAAC,OAAO;;oBAE1D,mBAAmB,CAAC,GAAG,KAAK,mBAAmB,CAAC,KAAK;;;;;;;2DAOd,mBAAmB,CAAC,OAAO;;;;kDAIpC,mBAAmB,CAAC,GAAG,KAAK,mBAAmB,CAAC,KAAK;;;;;;;;;;;;;;;;;;SAkB9F,CAAC;AAEV,MAAM,CAAC,MAAM,YAAY,GAAG;;;;IAIxB,cAAc;;;;;;6BAMW,cAAc,CAAC,QAAQ;;;;;YAKxC,cAAc,CAAC,iBAAiB;;;;;;;;;;UAUlC,cAAc,CAAC,oBAAoB;;sCAEP,mBAAmB,CAAC,GAAG,KAAK,mBAAmB,CAAC,KAAK;8DAC7B,cAAc,CAAC,aAAa;;;;;;;;;;;;;;;;;;;;;wEAqBlB,mBAAmB,CAAC,KAAK,iCAAiC,mBAAmB,CAAC,GAAG;;;;;;;;;;;QAWjJ,cAAc,CAAC,KAAK;;;QAGpB,cAAc,CAAC,YAAY;;QAE3B,CAAC","sourcesContent":["import { EstimateInvoiceType } from '../../../types/Enum/EstimateInvoice.js';\nimport { CommercialDocumentCommonHTML } from './common.js';\n\nconst commonTemplate = new CommercialDocumentCommonHTML();\n\nconst headOfDocument = `<div class=\"row space-between\">\n <% if (settings && settings.logoAlignment === 'left') { %>\n <div class=\"society-informations\">\n ${commonTemplate.logo}\n ${commonTemplate.company}\n </div>\n <% } else { %>\n <div class=\"society-informations\">${commonTemplate.company}</div>\n ${commonTemplate.logo}\n <% } %>\n </div>\n\n <div class=\"row space-between items-end\" style=\"margin-top: 10px\">\n <div style=\"width: 45%; margin-top: auto;\">\n <span class=\"document-reference\">\n <% if (idEstimateInvoiceType === ${EstimateInvoiceType.BON}) { %>\n <%= languageTemplate.template.orderForm.headers.title %>\n <% } else if (idEstimateInvoiceType === ${EstimateInvoiceType.DEVIS}) { %>\n <%= languageTemplate.template.estimate.headers.title %>\n <% } else if (idEstimateInvoiceType === ${EstimateInvoiceType.FACTURE}) { %>\n <%= languageTemplate.template.invoice.headers.title %>\n <% } else if (idEstimateInvoiceType === ${EstimateInvoiceType.AVOIR}) { %>\n <%= languageTemplate.template.asset.headers.title %>\n <% } else if (idEstimateInvoiceType === ${EstimateInvoiceType.RESTE}) { %>\n <%= languageTemplate.template.remainder.headers.title %>\n <% } else if (idEstimateInvoiceType === ${EstimateInvoiceType.ACOMPTE}) { %>\n <%= languageTemplate.template.deposit.headers.title %>\n <% } %>\n <%= reference %></span><br/>\n <% if(emissionDate) {%><span class=\"document-emission-date\"> <%= languageTemplate.template.common.headers.emissionDate %> : <%= emissionDateFormatted %></span><br/><% } %>\n <% if(dueDate && idEstimateInvoiceType !== ${EstimateInvoiceType.ACOMPTE}) {%>\n <span class=\"document-due-date\">\n <% if ([${EstimateInvoiceType.BON}, ${EstimateInvoiceType.DEVIS}].includes(idEstimateInvoiceType)) {%>\n <%= languageTemplate.template.estimate.headers.dueDate %> :\n <% } else { %>\n <%= languageTemplate.template.invoice.headers.dueDate %> :\n <% } %>\n <%= dueDateFormatted %></span>\n <% } %>\n <% if (expirationDate && idEstimateInvoiceType === ${EstimateInvoiceType.ACOMPTE}) {%>\n <span class=\"document-due-date\"><%= languageTemplate.template.deposit.headers.expirationDate %> : : <%= expirationDateFormatted %></span>\n <% } %>\n <% if(termsOfPayment) { %>\n <br/><p style=\"margin-bottom: 0px;\"><%= [${EstimateInvoiceType.BON}, ${EstimateInvoiceType.DEVIS}].includes(idEstimateInvoiceType) ? languageTemplate.template.estimate.headers.termsOfPayment : languageTemplate.template.invoice.headers.termsOfPayment %> : <%= termsOfPayment %></p>\n <% } %>\n </div>\n <div style=\"width: 40%; margin-top: auto;\">\n <p></p>\n <% if (thirdParty) { %>\n <div class=\"<%= settings && settings.isCoordinatesFrameDisplayed ? 'customer-border' : '' %>\">\n <% if(thirdParty.company) {%><b><%= thirdParty.company %></b><br/><% } %>\n <% if(thirdParty.fullname) {%><%= thirdParty.fullname %><br/><% } %>\n <% if(thirdParty.address) {%><%= thirdParty.address %><br/><% } %>\n <% if(thirdParty.addressComplement) {%><%= thirdParty.addressComplement %><br/><% } %>\n <% if(thirdParty.zipCode) {%><%= thirdParty.zipCode + ' ' %><% } %><%= thirdParty.city %> <%= thirdParty.country %><br/>\n <% if(thirdParty.deliveryAddress && thirdParty.deliveryCity && thirdParty.deliveryZipCode) {%>Adresse de livraison : <%= thirdParty.deliveryAddress %><% if(thirdParty.deliveryAddressComplement) {%> <%= thirdParty.deliveryAddressComplement %><% } %> <%= thirdParty.deliveryZipCode %> <%= thirdParty.deliveryCity %> <%= thirdParty.deliveryCountry %><br/><% } %>\n <% if(thirdParty.nSiret) {%>SIRET : <%= thirdParty.nSiret %><br/><% } %>\n <% if(thirdParty.nTva) {%>N° TVA : <%= thirdParty.nTva %><% } %>\n </div>\n <% } %>\n </div>\n </div>`;\n\nexport const bodyTemplate = `<html class=\"pdf-content\">\n\n <body>\n\n ${headOfDocument}\n\n <div class=\"row mt-25\">\n <% if (title) { %><%=languageTemplate.template.common.headers.title %> : <%= title %><% } %>\n </div>\n\n <div class=\"row mt-10\">${commonTemplate.products}</div>\n\n <div class=\"row space-between mt-20\">\n <div style=\"width: 55%;\">\n <% if (disableVat !== true && vats.length) { %>\n ${commonTemplate.vatRecapitulation}\n <% } %>\n <% if (vatMention && vatMention !== 'TVA: Non concerné') { %><div class=\"vat-mention <%= disableVat !== true ? 'mt-20' : ''%>\"><%= vatMention %></div><% } %>\n <% if (comment) { %>\n <p class=\"mt-20\"><%= languageTemplate.template.common.options.comment %> :<br/>\n <%- comment %>\n <% } %>\n </div>\n\n <div>\n ${commonTemplate.amountRecapitulation}\n\n <% if (isStripeAllowed && ![${EstimateInvoiceType.BON}, ${EstimateInvoiceType.DEVIS}].includes(idEstimateInvoiceType)) { %>\n <div style=\"text-align: right; margin-top: 30px;\">${commonTemplate.paymentButton}</div>\n <% } %>\n </div>\n \n </div>\n\n <% if ((settings && (settings.iban || settings.bic || settings.bank)) || paymentType) { %>\n <div class=\"row mt-30 space-between\" style=\"page-break-inside: avoid !important;\">\n <div>\n <% if ((settings && (settings.iban || settings.bic || settings.bank)) || paymentType) { %>\n <% if(paymentType) { %><%= languageTemplate.template.common.options.paymentType %> : <%= paymentType %><br/>\n <% if (!['Carte bancaire', 'Espèces', 'Chèque'].includes(paymentType)) { %>\n <% if(settings.bank) { %><%= languageTemplate.template.common.options.bank %> : <%= settings.bank %><br/><% } %>\n <% if(settings.iban) { %>IBAN : <%= settings.iban %><br/><% } %>\n <% if(settings.bic) { %>BIC : <%= settings.bic %><% } %>\n <% } %>\n <% } %>\n <% } %>\n </div>\n </div>\n <% } %>\n <% if (settings && settings.bonPour && (idEstimateInvoiceType === ${EstimateInvoiceType.DEVIS} || idEstimateInvoiceType === ${EstimateInvoiceType.BON})) { %>\n <br/><%= languageTemplate.template.common.options.approval %> : <br/><br/><br/><br/>\n <% } %>\n\n <% if (cgv && (settings && settings.invoiceCgv)) { %>\n <br><div style=\"page-break-after:always;\"></div>\n <div id=\"WYSIWYG\"><%- cgv %></div>\n <% } %>\n </body>\n\n <style>\n ${commonTemplate.style}\n </style>\n <style>\n ${commonTemplate.styleWYSIWYG}\n </style>\n</html>`;\n"]}
1
+ {"version":3,"file":"body.js","sourceRoot":"","sources":["../../../../ts/utils/commercialManagement/templates/body.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM,cAAc,GAAG,IAAI,4BAA4B,EAAE,CAAC;AAE1D,MAAM,cAAc,GAAG;;;YAGX,cAAc,CAAC,IAAI;YACnB,cAAc,CAAC,OAAO;;;4CAGU,cAAc,CAAC,OAAO;UACxD,cAAc,CAAC,IAAI;;;;;;;yCAOY,mBAAmB,CAAC,GAAG;;gDAEhB,mBAAmB,CAAC,KAAK;;gDAEzB,mBAAmB,CAAC,OAAO;;gDAE3B,mBAAmB,CAAC,KAAK;;gDAEzB,mBAAmB,CAAC,KAAK;;gDAEzB,mBAAmB,CAAC,OAAO;;;;;mDAKxB,mBAAmB,CAAC,OAAO;;oBAE1D,mBAAmB,CAAC,GAAG,KAAK,mBAAmB,CAAC,KAAK;;;;;;;2DAOd,mBAAmB,CAAC,OAAO;;;;kDAIpC,mBAAmB,CAAC,GAAG,KAAK,mBAAmB,CAAC,KAAK;;;;;;;;;;;;;;;;;;SAkB9F,CAAC;AAEV,MAAM,CAAC,MAAM,YAAY,GAAG;;;;IAIxB,cAAc;;;;;;6BAMW,cAAc,CAAC,QAAQ;;;;;YAKxC,cAAc,CAAC,iBAAiB;;;;;;;;;;UAUlC,cAAc,CAAC,oBAAoB;;sCAEP,mBAAmB,CAAC,GAAG,KAAK,mBAAmB,CAAC,KAAK;8DAC7B,cAAc,CAAC,aAAa;;;;;;;;;;;;;;;;;;;;;;wEAsBlB,mBAAmB,CAAC,KAAK,iCAAiC,mBAAmB,CAAC,GAAG;;;;;;;;;;;QAWjJ,cAAc,CAAC,KAAK;;;QAGpB,cAAc,CAAC,YAAY;;QAE3B,CAAC","sourcesContent":["import { EstimateInvoiceType } from '../../../types/Enum/EstimateInvoice.js';\nimport { CommercialDocumentCommonHTML } from './common.js';\n\nconst commonTemplate = new CommercialDocumentCommonHTML();\n\nconst headOfDocument = `<div class=\"row space-between\">\n <% if (settings && settings.logoAlignment === 'left') { %>\n <div class=\"society-informations\">\n ${commonTemplate.logo}\n ${commonTemplate.company}\n </div>\n <% } else { %>\n <div class=\"society-informations\">${commonTemplate.company}</div>\n ${commonTemplate.logo}\n <% } %>\n </div>\n\n <div class=\"row space-between items-end\" style=\"margin-top: 10px\">\n <div style=\"width: 45%; margin-top: auto;\">\n <span class=\"document-reference\">\n <% if (idEstimateInvoiceType === ${EstimateInvoiceType.BON}) { %>\n <%= languageTemplate.template.orderForm.headers.title %>\n <% } else if (idEstimateInvoiceType === ${EstimateInvoiceType.DEVIS}) { %>\n <%= languageTemplate.template.estimate.headers.title %>\n <% } else if (idEstimateInvoiceType === ${EstimateInvoiceType.FACTURE}) { %>\n <%= languageTemplate.template.invoice.headers.title %>\n <% } else if (idEstimateInvoiceType === ${EstimateInvoiceType.AVOIR}) { %>\n <%= languageTemplate.template.asset.headers.title %>\n <% } else if (idEstimateInvoiceType === ${EstimateInvoiceType.RESTE}) { %>\n <%= languageTemplate.template.remainder.headers.title %>\n <% } else if (idEstimateInvoiceType === ${EstimateInvoiceType.ACOMPTE}) { %>\n <%= languageTemplate.template.deposit.headers.title %>\n <% } %>\n <%= reference %></span><br/>\n <% if(emissionDate) {%><span class=\"document-emission-date\"> <%= languageTemplate.template.common.headers.emissionDate %> : <%= emissionDateFormatted %></span><br/><% } %>\n <% if(dueDate && idEstimateInvoiceType !== ${EstimateInvoiceType.ACOMPTE}) {%>\n <span class=\"document-due-date\">\n <% if ([${EstimateInvoiceType.BON}, ${EstimateInvoiceType.DEVIS}].includes(idEstimateInvoiceType)) {%>\n <%= languageTemplate.template.estimate.headers.dueDate %> :\n <% } else { %>\n <%= languageTemplate.template.invoice.headers.dueDate %> :\n <% } %>\n <%= dueDateFormatted %></span>\n <% } %>\n <% if (expirationDate && idEstimateInvoiceType === ${EstimateInvoiceType.ACOMPTE}) {%>\n <span class=\"document-due-date\"><%= languageTemplate.template.deposit.headers.expirationDate %> : : <%= expirationDateFormatted %></span>\n <% } %>\n <% if(termsOfPayment) { %>\n <br/><p style=\"margin-bottom: 0px;\"><%= [${EstimateInvoiceType.BON}, ${EstimateInvoiceType.DEVIS}].includes(idEstimateInvoiceType) ? languageTemplate.template.estimate.headers.termsOfPayment : languageTemplate.template.invoice.headers.termsOfPayment %> : <%= termsOfPayment %></p>\n <% } %>\n </div>\n <div style=\"width: 40%; margin-top: auto;\">\n <p></p>\n <% if (thirdParty) { %>\n <div class=\"<%= settings && settings.isCoordinatesFrameDisplayed ? 'customer-border' : '' %>\">\n <% if(thirdParty.company) {%><b><%= thirdParty.company %></b><br/><% } %>\n <% if(thirdParty.fullname) {%><%= thirdParty.fullname %><br/><% } %>\n <% if(thirdParty.address) {%><%= thirdParty.address %><br/><% } %>\n <% if(thirdParty.addressComplement) {%><%= thirdParty.addressComplement %><br/><% } %>\n <% if(thirdParty.zipCode) {%><%= thirdParty.zipCode + ' ' %><% } %><%= thirdParty.city %> <%= thirdParty.country %><br/>\n <% if(thirdParty.deliveryAddress && thirdParty.deliveryCity && thirdParty.deliveryZipCode) {%>Adresse de livraison : <%= thirdParty.deliveryAddress %><% if(thirdParty.deliveryAddressComplement) {%> <%= thirdParty.deliveryAddressComplement %><% } %> <%= thirdParty.deliveryZipCode %> <%= thirdParty.deliveryCity %> <%= thirdParty.deliveryCountry %><br/><% } %>\n <% if(thirdParty.nSiret) {%>SIRET : <%= thirdParty.nSiret %><br/><% } %>\n <% if(thirdParty.nTva) {%>N° TVA : <%= thirdParty.nTva %><% } %>\n </div>\n <% } %>\n </div>\n </div>`;\n\nexport const bodyTemplate = `<html class=\"pdf-content\">\n\n <body>\n\n ${headOfDocument}\n\n <div class=\"row mt-25\">\n <% if (title) { %><%=languageTemplate.template.common.headers.title %> : <%= title %><% } %>\n </div>\n\n <div class=\"row mt-10\">${commonTemplate.products}</div>\n\n <div class=\"row space-between mt-20\">\n <div style=\"width: 55%;\">\n <% if (disableVat !== true && vats.length) { %>\n ${commonTemplate.vatRecapitulation}\n <% } %>\n <% if (vatMention && vatMention !== 'TVA: Non concerné') { %><div class=\"vat-mention <%= disableVat !== true ? 'mt-20' : ''%>\"><%= vatMention %></div><% } %>\n <% if (comment) { %>\n <p class=\"mt-20\"><%= languageTemplate.template.common.options.comment %> :<br/>\n <%- comment %>\n <% } %>\n </div>\n\n <div>\n ${commonTemplate.amountRecapitulation}\n\n <% if (isStripeAllowed && ![${EstimateInvoiceType.BON}, ${EstimateInvoiceType.DEVIS}].includes(idEstimateInvoiceType)) { %>\n <div style=\"text-align: right; margin-top: 30px;\">${commonTemplate.paymentButton}</div>\n <% } %>\n </div>\n \n </div>\n\n <% if ((settings && (settings.iban || settings.bic || settings.bank)) || paymentType) { %>\n <div class=\"row mt-30 space-between\" style=\"page-break-inside: avoid !important;\">\n <div>\n <% if (paymentType) { %>\n <%= languageTemplate.template.common.options.paymentType %> : <%= paymentType %><br/>\n <% } %>\n <% if (!paymentType || !['Carte bancaire', 'Espèces', 'Chèque'].includes(paymentType)) { %>\n <% if (settings) { %>\n <% if(settings.bank) { %><%= languageTemplate.template.common.options.bank %> : <%= settings.bank %><br/><% } %>\n <% if(settings.iban) { %>IBAN : <%= settings.iban %><br/><% } %>\n <% if(settings.bic) { %>BIC : <%= settings.bic %><% } %>\n <% } %>\n <% } %>\n </div>\n </div>\n <% } %>\n <% if (settings && settings.bonPour && (idEstimateInvoiceType === ${EstimateInvoiceType.DEVIS} || idEstimateInvoiceType === ${EstimateInvoiceType.BON})) { %>\n <br/><%= languageTemplate.template.common.options.approval %> : <br/><br/><br/><br/>\n <% } %>\n\n <% if (cgv && (settings && settings.invoiceCgv)) { %>\n <br><div style=\"page-break-after:always;\"></div>\n <div id=\"WYSIWYG\"><%- cgv %></div>\n <% } %>\n </body>\n\n <style>\n ${commonTemplate.style}\n </style>\n <style>\n ${commonTemplate.styleWYSIWYG}\n </style>\n</html>`;\n"]}
@@ -359,8 +359,8 @@ export function generateSignature(params) {
359
359
  user,
360
360
  roleSignature,
361
361
  mailSignature,
362
- phoneSignature: phoneSignature ? phoneSignature.replace(/\s+/gm, '&nbsp;') : null,
363
- standardPhoneSignature: standardPhoneSignature.replace(/\s+/gm, '&nbsp;'),
362
+ phoneSignature: commercialName !== 'Comptalib' && phoneSignature ? phoneSignature.replace(/\s+/gm, '&nbsp;') : null,
363
+ standardPhoneSignature: commercialName !== 'Comptalib' ? standardPhoneSignature.replace(/\s+/gm, '&nbsp;') : null,
364
364
  horaires,
365
365
  primaryColor,
366
366
  supportMail,
@@ -1 +1 @@
1
- {"version":3,"file":"email.js","sourceRoot":"","sources":["../../ts/utils/email.ts"],"names":[],"mappings":"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","sourcesContent":["import ejs from 'ejs';\nimport { Role } from '../types/Enum/Role.js';\nimport { TimeSlot } from '../types/Enum/TimeSlot.js';\nimport { IUser } from '../types/Interface/models/IUser.js';\nimport { getBrand, getBrandConfig } from './brands.js';\nimport { signatureTemplate } from './email/templates/signature.js';\nimport { intersection } from './noLodash.js';\nimport { IRole } from '../types/Interface/models/IRole.js';\n\nfunction getRoleSignature(user: any) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n if (user.positionLabel) return user.positionLabel;\n\n const isStagiaireOrAlternant =\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n user.roles.map((r: any) => r.id).includes(Role.INTERN) || user.roles.map((r: any) => r.id).includes(Role.ALTERNATE);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isManager = user.roles.map((r: any) => r.id).includes(Role.MANAGER);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isSocial = user.roles.map((r: any) => r.id).includes(Role.SOCIAL);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isJuridic = user.roles.map((r: any) => r.id).includes(Role.JURIDIC);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isFacturation = user.roles.map((r: any) => r.id).includes(Role.FACTURATION);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isExpert = user.roles.map((r: any) => r.id).includes(Role.EXPERT_ACCOUNTANT);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isCS = user.roles.map((r: any) => r.id).includes(Role.CUSTOMER_SUCCESS);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isOnBoarder = user.roles.map((r: any) => r.id).includes(Role.ON_BOARDER);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isSatisfaction = user.roles.map((r: any) => r.id).includes(Role.SATISFACTION);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isDataOfficer = user.roles.map((r: any) => r.id).includes(Role.DATA_OFFICER);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isSales = user.roles.map((r: any) => r.id).includes(Role.COMMERCIAL);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isAdmin = user.roles.map((r: any) => r.id).includes(Role.ADMIN);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isTechnicalAdvisor = user.roles.map((r: any) => r.id).includes(Role.TECHNICAL_ADVISOR);\n\n const isFront = !!intersection(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n user.roles.map((r: any) => r.id),\n [Role.FRONT_OFFICE, Role.FRONT_OFFICE_EXPRESS],\n ).length;\n\n if (isSales && isManager) {\n return 'Responsable commercial';\n }\n if (isSales) {\n return `Chargé${user.idCivility === 2 ? 'e' : ''} de clientèle`;\n }\n\n if (isCS && isManager) {\n return 'Responsable relations clients';\n }\n if (isCS) {\n return `Conseill${user.idCivility === 2 ? 'ère' : 'er'} comptable`;\n }\n\n if (isTechnicalAdvisor) {\n return `Référent${user.idCivility === 2 ? 'e' : ''} technique`;\n }\n\n if (isOnBoarder && isManager) {\n return `Responsable chargé${user.idCivility === 2 ? 'e' : ''} accueil clients`;\n }\n if (isOnBoarder) {\n return `Chargé${user.idCivility === 2 ? 'e' : ''} accueil clients`;\n }\n\n if (isSatisfaction && isManager) {\n return `Responsable chargé${user.idCivility === 2 ? 'e' : ''} de la satisfaction clients`;\n }\n if (isSatisfaction) {\n return `Chargé${user.idCivility === 2 ? 'e' : ''} de la satisfaction clients`;\n }\n\n if (isDataOfficer && isManager) {\n return 'Responsable aide comptable';\n }\n if (isDataOfficer) {\n return 'Aide comptable';\n }\n\n if (isFacturation && isStagiaireOrAlternant) {\n return 'Assistant facturation';\n }\n if (isFacturation && isManager) {\n return 'Responsable facturation';\n }\n if (isFacturation) {\n return `Chargé${user.idCivility === 2 ? 'e' : ''} de facturation`;\n }\n\n if (isJuridic && isStagiaireOrAlternant) {\n return 'Assistant juridique';\n }\n if (isJuridic && isManager) {\n return 'Responsable juridique';\n }\n if (isJuridic) {\n return 'Juriste';\n }\n\n if (isSocial && isStagiaireOrAlternant) {\n return 'Assistant paie';\n }\n if (isSocial && isManager) {\n return 'Responsable paie';\n }\n if (isSocial) {\n return 'Gestionnaire de paie';\n }\n\n if (isExpert) {\n return `Expert${user.idCivility === 2 ? 'e' : ''}-comptable`;\n }\n\n if (isAdmin) {\n return 'Développeur web';\n }\n\n if (isFront && isManager) return 'Responsable comptable';\n if (isFront && isStagiaireOrAlternant) return 'Assistant comptable';\n // if (isFront) return `Comptable dédié${user.idCivility === 2 ? 'e' : ''}`;\n // return `Comptable dédié${user.idCivility === 2 ? 'e' : ''}`;\n // if (isFront) return `Comptable`;\n return 'Comptable';\n}\n\nexport function getHoraires(user: IUser) {\n // On affiche les horaires uniquement pour les front, et pas pour les TVA\n\n // if (\n // isItThisEnv('Pourcentage') &&\n // user?.entity &&\n // [EntityType.COMPTALIB, EntityType.AMEX, EntityType.CABINET_RONCHIERI_LANDRA].includes(user.entity)\n // ) {\n // return 'Du lundi au vendredi de 9h à 18h';\n // }\n\n if (user?.roles?.map((r: IRole) => r.id).includes(Role.COMMERCIAL)) {\n return 'Du lundi au vendredi de 9h à 18h';\n }\n\n return 'Du lundi au jeudi de 9h à 17h<br/>Le vendredi de 9h à 12h';\n\n // if (!intersection([user.roles.map((r: any) => r.id), [Role.FRONT_OFFICE, Role.FRONT_OFFICE_EXPRESS, Role.COMMERCIAL]]).length) return 'Du lundi au vendredi de 9h à 18h';\n\n // if (!user.workingSchedules.length) return 'Du lundi au vendredi de 9h à 18h';\n\n // let reducedSchedules = user.workingSchedules.reduce((acc: any, e:any, index: number) => {\n // const name = `${dayjs(e.morningStart, 'HH:mm:ss').format('HH:mm')}-${dayjs(e.afternoonEnd || e.morningEnd, 'HH:mm:ss').format('HH:mm')}`;\n // if (!acc[name]) acc[name] = [index];\n // else acc[name].push(index);\n // return acc;\n // }, {});\n\n // reducedSchedules = orderByLodash(reducedSchedules, (elem) => elem.length, ['desc']);\n\n // let resultHoraire = '';\n // let startH;\n // let startM;\n // let endH;\n // let endM;\n // let firstDayOfWeek;\n // let lastDayOfWeek;\n\n // reducedSchedules.forEach((schedule: any, index: number) => {\n // startH = dayjs(user.workingSchedules[schedule[0]].morningStart ? user.workingSchedules[schedule[0]].morningStart : user.workingSchedules[schedule[0]].afternoonStart, 'HH:mm:ss').get('hour');\n // startM = dayjs(user.workingSchedules[schedule[0]].morningStart ? user.workingSchedules[schedule[0]].morningStart : user.workingSchedules[schedule[0]].afternoonStart, 'HH:mm:ss').get('minute');\n // endH = dayjs(user.workingSchedules[schedule[0]].afternoonEnd || user.workingSchedules[schedule[0]].morningEnd, 'HH:mm:ss').get('hour');\n // endM = dayjs(user.workingSchedules[schedule[0]].afternoonEnd || user.workingSchedules[schedule[0]].morningEnd, 'HH:mm:ss').get('minute');\n // firstDayOfWeek = dayjs().locale('fr').day(user.workingSchedules[schedule[0]].idDay).format('dddd');\n // if (!index) {\n // // pour le premier index, on affiche l'amplitude horaire la plus commune, du XX au XX de Xh à Xh\n // lastDayOfWeek = dayjs().locale('fr').day(user.workingSchedules[user.workingSchedules.length - 1].idDay).format('dddd');\n // resultHoraire += `Du ${firstDayOfWeek} au ${lastDayOfWeek} de ${startH}h${startM > 0 ? startM : ''} à ${endH}h${endM > 0 ? endM : ''}`;\n // } else { // Fonctionnel si uniquement un jour par semaine avec des horaires différents\n // resultHoraire += `<br/>Le ${firstDayOfWeek} de ${startH}h${startM > 0 ? startM : ''} à ${endH}h${endM > 0 ? endM : ''}`;\n // }\n // });\n // return resultHoraire;\n}\n\nfunction getMailSignature(user: any, idTypeBrand: number) {\n const informatiqueMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.informatique',\n }) as unknown as string;\n const bonjourMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.bonjour',\n }) as unknown as string;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n if (user.roles.map((r: any) => r.id).includes(Role.ADMIN)) {\n return informatiqueMail;\n }\n\n if (\n user &&\n !!intersection(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n user.roles.map((r: any) => r.id),\n [Role.FRONT_OFFICE, Role.FRONT_OFFICE_EXPRESS, Role.DATA_OFFICER, Role.COMMERCIAL, Role.TECHNICAL_ADVISOR],\n ).length\n )\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return user.email;\n return bonjourMail;\n}\n\nfunction getPhoneSignature(user: any) {\n if (user.phone && user.phone !== '0383931414') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return user.phone.replace(/\\B(?=(\\d{2})+(?!\\d))/g, '&nbsp;');\n }\n return null;\n}\n\nexport function generateSignature(params: any): string {\n const { fromAddress = null, idTypeBrand = 1, society, ...otherParams } = params;\n let { user, forceRole = null } = otherParams;\n\n const brand = getBrand({ idTypeBrand });\n\n const hostS3 = brand.urlS3;\n\n const brandName = brand.name;\n const brandCity = brand.companyInformation?.city;\n const brandPostalAddress = brand.companyInformation?.postalAddress || '';\n const commercialName = brand.commercialName;\n const iban = brand.bank?.IBAN;\n const bic = brand.bank?.BIC;\n const bonjourMail = brand.listMails?.bonjour || '';\n const socialMail = brand.listMails?.social || '';\n const dataOfficerMail = brand.listMails?.gestion || '';\n const satisfactionMail = brand.listMails?.satisfaction || '';\n const resiliationMail = brand.listMails?.resiliation || '';\n const supportMail = brand.listMails?.support || '';\n const juridiqueMail = brand.listMails?.juridique || '';\n const facturationMail = brand.listMails?.facturation || '';\n const primaryColor = brand.colors?.primary || '';\n const standardPhoneSignature = brand.listPhones?.contact || '';\n const juridiquePhoneSignature = brand.listPhones?.juridique || '';\n const socialPhoneSignature = brand.listPhones?.social || '';\n\n // Pour les cas hybrides des personnes ayant plusieurs rôles\n // Comme Morgane (Facturation + Satisfaction) et qui peut choisir plusieurs emails d'expédition\n // Il faut que la signature corresponde à l'adresse d'expédition\n // donc actuellement, on ne gère que satisfaction/resiliation/facturation\n const listGenericEmails: { email: string; forceRole: string }[] = [\n { email: satisfactionMail, forceRole: 'satisfaction' },\n { email: resiliationMail, forceRole: 'resiliation' },\n { email: facturationMail, forceRole: 'facturation' },\n ];\n const genericEmailUsed = listGenericEmails.find((e) => e.email === fromAddress);\n if (genericEmailUsed) {\n forceRole = genericEmailUsed.forceRole;\n }\n\n let roleSignature: string | null;\n let mailSignature: string | null;\n let phoneSignature: string | null;\n let horaires: string | null;\n [roleSignature, mailSignature, phoneSignature, horaires] = [\n 'Expert-Comptable',\n bonjourMail,\n null,\n 'Du lundi au vendredi de 9h à 18h',\n ];\n\n if (user?.roles && user.roles.some((r: any) => r.id === Role.DATA_OFFICER)) {\n // Signature data_officer\n user = {\n firstname: `L'équipe ${commercialName}`,\n isAll: true,\n };\n mailSignature = dataOfficerMail;\n roleSignature = '';\n } else if (\n intersection(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n (user?.roles ?? []).map((r: any) => r.id),\n [Role.FRONT_OFFICE, Role.SENIOR],\n ).length === 2\n ) {\n // Signature front senior\n user = {\n firstname: `L'équipe ${commercialName}`,\n isAll: true,\n };\n mailSignature = bonjourMail;\n roleSignature = '';\n } else if (forceRole === 'satisfaction') {\n // Signature satisfaction\n user = {\n firstname: 'Service satisfaction clients',\n isAll: true,\n };\n mailSignature = satisfactionMail;\n roleSignature = '';\n phoneSignature = standardPhoneSignature;\n } else if (forceRole === 'resiliation') {\n // Signature resiliation\n user = {\n firstname: 'Service satisfaction clients',\n isAll: true,\n };\n mailSignature = resiliationMail;\n roleSignature = '';\n phoneSignature = standardPhoneSignature;\n } else if (forceRole === 'social') {\n // Signature social\n user = {\n firstname: 'Service social',\n isAll: true,\n };\n mailSignature = socialMail;\n roleSignature = '';\n phoneSignature = socialPhoneSignature;\n } else if (forceRole === 'support') {\n // Signature support\n user = {\n firstname: 'Service Support',\n isAll: true,\n };\n mailSignature = supportMail;\n roleSignature = null;\n } else if (forceRole === 'juridique') {\n // Signature juridique\n user = {\n firstname: 'Service juridique',\n isAll: true,\n };\n mailSignature = juridiqueMail;\n roleSignature = null;\n phoneSignature = juridiquePhoneSignature;\n } else if (forceRole === 'facturation') {\n // Signature facturation\n user = {\n firstname: 'Service facturation',\n isAll: true,\n };\n mailSignature = facturationMail;\n roleSignature = null;\n phoneSignature = standardPhoneSignature;\n } else if (!user || forceRole === 'generique') {\n // Signature Clementine\n user = {\n firstname: `L'équipe ${commercialName}`,\n isAll: true,\n };\n roleSignature = '';\n } else if (user !== 0) {\n // Signature par défaut\n roleSignature = getRoleSignature(user);\n mailSignature = getMailSignature(user, idTypeBrand);\n horaires = getHoraires(user);\n phoneSignature = getPhoneSignature(user);\n }\n\n // Si on a une société, alors on remplace le lien calendly de base par le lien calendly interne\n // on n'affiche uniquement si le collaboreatur a bien des créneaux horaires\n if (\n society?.id &&\n user?.roles?.some((r: any) =>\n [Role.FRONT_OFFICE, Role.FACTURATION, Role.JURIDIC, Role.COMMERCIAL].includes(r.id),\n ) &&\n user?.usersTimeSlots?.length\n ) {\n const isJuridic = user?.roles?.some((r: any) => [Role.JURIDIC].includes(r.id));\n const isFactu = user?.roles?.some((r: any) => [Role.FACTURATION].includes(r.id));\n const isCommercial = user?.roles?.some((r: any) => [Role.COMMERCIAL].includes(r.id));\n let idType = TimeSlot.BILAN;\n if (isJuridic) idType = TimeSlot.EDIT_SOCIETY;\n if (isFactu) idType = TimeSlot.BILLING;\n if (isCommercial) idType = TimeSlot.SALES;\n const urlApp = brand.urlApp || '';\n user.calendlyUrl = `${urlApp}/appointment?uuid=${society?.externalId ? society.externalId : ''}&idType=${idType}`;\n }\n\n return ejs.render(signatureTemplate, {\n forceRole,\n isFacturation: user.roles ? user.roles.some((r: any) => r.id === Role.FACTURATION) : false,\n isDataOfficer: user.roles ? user.roles.some((r: any) => r.id === Role.DATA_OFFICER) : true,\n brandName,\n brandPostalAddress,\n brandCity,\n idTypeBrand,\n commercialName,\n iban,\n bic,\n hostS3,\n user,\n roleSignature,\n mailSignature,\n phoneSignature: phoneSignature ? phoneSignature.replace(/\\s+/gm, '&nbsp;') : null,\n standardPhoneSignature: standardPhoneSignature.replace(/\\s+/gm, '&nbsp;'),\n horaires,\n primaryColor,\n supportMail,\n });\n}\n"]}
1
+ {"version":3,"file":"email.js","sourceRoot":"","sources":["../../ts/utils/email.ts"],"names":[],"mappings":"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","sourcesContent":["import ejs from 'ejs';\nimport { Role } from '../types/Enum/Role.js';\nimport { TimeSlot } from '../types/Enum/TimeSlot.js';\nimport { IUser } from '../types/Interface/models/IUser.js';\nimport { getBrand, getBrandConfig } from './brands.js';\nimport { signatureTemplate } from './email/templates/signature.js';\nimport { intersection } from './noLodash.js';\nimport { IRole } from '../types/Interface/models/IRole.js';\n\nfunction getRoleSignature(user: any) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n if (user.positionLabel) return user.positionLabel;\n\n const isStagiaireOrAlternant =\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n user.roles.map((r: any) => r.id).includes(Role.INTERN) || user.roles.map((r: any) => r.id).includes(Role.ALTERNATE);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isManager = user.roles.map((r: any) => r.id).includes(Role.MANAGER);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isSocial = user.roles.map((r: any) => r.id).includes(Role.SOCIAL);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isJuridic = user.roles.map((r: any) => r.id).includes(Role.JURIDIC);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isFacturation = user.roles.map((r: any) => r.id).includes(Role.FACTURATION);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isExpert = user.roles.map((r: any) => r.id).includes(Role.EXPERT_ACCOUNTANT);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isCS = user.roles.map((r: any) => r.id).includes(Role.CUSTOMER_SUCCESS);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isOnBoarder = user.roles.map((r: any) => r.id).includes(Role.ON_BOARDER);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isSatisfaction = user.roles.map((r: any) => r.id).includes(Role.SATISFACTION);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isDataOfficer = user.roles.map((r: any) => r.id).includes(Role.DATA_OFFICER);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isSales = user.roles.map((r: any) => r.id).includes(Role.COMMERCIAL);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isAdmin = user.roles.map((r: any) => r.id).includes(Role.ADMIN);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n const isTechnicalAdvisor = user.roles.map((r: any) => r.id).includes(Role.TECHNICAL_ADVISOR);\n\n const isFront = !!intersection(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n user.roles.map((r: any) => r.id),\n [Role.FRONT_OFFICE, Role.FRONT_OFFICE_EXPRESS],\n ).length;\n\n if (isSales && isManager) {\n return 'Responsable commercial';\n }\n if (isSales) {\n return `Chargé${user.idCivility === 2 ? 'e' : ''} de clientèle`;\n }\n\n if (isCS && isManager) {\n return 'Responsable relations clients';\n }\n if (isCS) {\n return `Conseill${user.idCivility === 2 ? 'ère' : 'er'} comptable`;\n }\n\n if (isTechnicalAdvisor) {\n return `Référent${user.idCivility === 2 ? 'e' : ''} technique`;\n }\n\n if (isOnBoarder && isManager) {\n return `Responsable chargé${user.idCivility === 2 ? 'e' : ''} accueil clients`;\n }\n if (isOnBoarder) {\n return `Chargé${user.idCivility === 2 ? 'e' : ''} accueil clients`;\n }\n\n if (isSatisfaction && isManager) {\n return `Responsable chargé${user.idCivility === 2 ? 'e' : ''} de la satisfaction clients`;\n }\n if (isSatisfaction) {\n return `Chargé${user.idCivility === 2 ? 'e' : ''} de la satisfaction clients`;\n }\n\n if (isDataOfficer && isManager) {\n return 'Responsable aide comptable';\n }\n if (isDataOfficer) {\n return 'Aide comptable';\n }\n\n if (isFacturation && isStagiaireOrAlternant) {\n return 'Assistant facturation';\n }\n if (isFacturation && isManager) {\n return 'Responsable facturation';\n }\n if (isFacturation) {\n return `Chargé${user.idCivility === 2 ? 'e' : ''} de facturation`;\n }\n\n if (isJuridic && isStagiaireOrAlternant) {\n return 'Assistant juridique';\n }\n if (isJuridic && isManager) {\n return 'Responsable juridique';\n }\n if (isJuridic) {\n return 'Juriste';\n }\n\n if (isSocial && isStagiaireOrAlternant) {\n return 'Assistant paie';\n }\n if (isSocial && isManager) {\n return 'Responsable paie';\n }\n if (isSocial) {\n return 'Gestionnaire de paie';\n }\n\n if (isExpert) {\n return `Expert${user.idCivility === 2 ? 'e' : ''}-comptable`;\n }\n\n if (isAdmin) {\n return 'Développeur web';\n }\n\n if (isFront && isManager) return 'Responsable comptable';\n if (isFront && isStagiaireOrAlternant) return 'Assistant comptable';\n // if (isFront) return `Comptable dédié${user.idCivility === 2 ? 'e' : ''}`;\n // return `Comptable dédié${user.idCivility === 2 ? 'e' : ''}`;\n // if (isFront) return `Comptable`;\n return 'Comptable';\n}\n\nexport function getHoraires(user: IUser) {\n // On affiche les horaires uniquement pour les front, et pas pour les TVA\n\n // if (\n // isItThisEnv('Pourcentage') &&\n // user?.entity &&\n // [EntityType.COMPTALIB, EntityType.AMEX, EntityType.CABINET_RONCHIERI_LANDRA].includes(user.entity)\n // ) {\n // return 'Du lundi au vendredi de 9h à 18h';\n // }\n\n if (user?.roles?.map((r: IRole) => r.id).includes(Role.COMMERCIAL)) {\n return 'Du lundi au vendredi de 9h à 18h';\n }\n\n return 'Du lundi au jeudi de 9h à 17h<br/>Le vendredi de 9h à 12h';\n\n // if (!intersection([user.roles.map((r: any) => r.id), [Role.FRONT_OFFICE, Role.FRONT_OFFICE_EXPRESS, Role.COMMERCIAL]]).length) return 'Du lundi au vendredi de 9h à 18h';\n\n // if (!user.workingSchedules.length) return 'Du lundi au vendredi de 9h à 18h';\n\n // let reducedSchedules = user.workingSchedules.reduce((acc: any, e:any, index: number) => {\n // const name = `${dayjs(e.morningStart, 'HH:mm:ss').format('HH:mm')}-${dayjs(e.afternoonEnd || e.morningEnd, 'HH:mm:ss').format('HH:mm')}`;\n // if (!acc[name]) acc[name] = [index];\n // else acc[name].push(index);\n // return acc;\n // }, {});\n\n // reducedSchedules = orderByLodash(reducedSchedules, (elem) => elem.length, ['desc']);\n\n // let resultHoraire = '';\n // let startH;\n // let startM;\n // let endH;\n // let endM;\n // let firstDayOfWeek;\n // let lastDayOfWeek;\n\n // reducedSchedules.forEach((schedule: any, index: number) => {\n // startH = dayjs(user.workingSchedules[schedule[0]].morningStart ? user.workingSchedules[schedule[0]].morningStart : user.workingSchedules[schedule[0]].afternoonStart, 'HH:mm:ss').get('hour');\n // startM = dayjs(user.workingSchedules[schedule[0]].morningStart ? user.workingSchedules[schedule[0]].morningStart : user.workingSchedules[schedule[0]].afternoonStart, 'HH:mm:ss').get('minute');\n // endH = dayjs(user.workingSchedules[schedule[0]].afternoonEnd || user.workingSchedules[schedule[0]].morningEnd, 'HH:mm:ss').get('hour');\n // endM = dayjs(user.workingSchedules[schedule[0]].afternoonEnd || user.workingSchedules[schedule[0]].morningEnd, 'HH:mm:ss').get('minute');\n // firstDayOfWeek = dayjs().locale('fr').day(user.workingSchedules[schedule[0]].idDay).format('dddd');\n // if (!index) {\n // // pour le premier index, on affiche l'amplitude horaire la plus commune, du XX au XX de Xh à Xh\n // lastDayOfWeek = dayjs().locale('fr').day(user.workingSchedules[user.workingSchedules.length - 1].idDay).format('dddd');\n // resultHoraire += `Du ${firstDayOfWeek} au ${lastDayOfWeek} de ${startH}h${startM > 0 ? startM : ''} à ${endH}h${endM > 0 ? endM : ''}`;\n // } else { // Fonctionnel si uniquement un jour par semaine avec des horaires différents\n // resultHoraire += `<br/>Le ${firstDayOfWeek} de ${startH}h${startM > 0 ? startM : ''} à ${endH}h${endM > 0 ? endM : ''}`;\n // }\n // });\n // return resultHoraire;\n}\n\nfunction getMailSignature(user: any, idTypeBrand: number) {\n const informatiqueMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.informatique',\n }) as unknown as string;\n const bonjourMail = getBrandConfig({\n ...(idTypeBrand ? { idTypeBrand } : {}),\n objectWaited: 'listMails.bonjour',\n }) as unknown as string;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n if (user.roles.map((r: any) => r.id).includes(Role.ADMIN)) {\n return informatiqueMail;\n }\n\n if (\n user &&\n !!intersection(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n user.roles.map((r: any) => r.id),\n [Role.FRONT_OFFICE, Role.FRONT_OFFICE_EXPRESS, Role.DATA_OFFICER, Role.COMMERCIAL, Role.TECHNICAL_ADVISOR],\n ).length\n )\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return user.email;\n return bonjourMail;\n}\n\nfunction getPhoneSignature(user: any) {\n if (user.phone && user.phone !== '0383931414') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return user.phone.replace(/\\B(?=(\\d{2})+(?!\\d))/g, '&nbsp;');\n }\n return null;\n}\n\nexport function generateSignature(params: any): string {\n const { fromAddress = null, idTypeBrand = 1, society, ...otherParams } = params;\n let { user, forceRole = null } = otherParams;\n\n const brand = getBrand({ idTypeBrand });\n\n const hostS3 = brand.urlS3;\n\n const brandName = brand.name;\n const brandCity = brand.companyInformation?.city;\n const brandPostalAddress = brand.companyInformation?.postalAddress || '';\n const commercialName = brand.commercialName;\n const iban = brand.bank?.IBAN;\n const bic = brand.bank?.BIC;\n const bonjourMail = brand.listMails?.bonjour || '';\n const socialMail = brand.listMails?.social || '';\n const dataOfficerMail = brand.listMails?.gestion || '';\n const satisfactionMail = brand.listMails?.satisfaction || '';\n const resiliationMail = brand.listMails?.resiliation || '';\n const supportMail = brand.listMails?.support || '';\n const juridiqueMail = brand.listMails?.juridique || '';\n const facturationMail = brand.listMails?.facturation || '';\n const primaryColor = brand.colors?.primary || '';\n const standardPhoneSignature = brand.listPhones?.contact || '';\n const juridiquePhoneSignature = brand.listPhones?.juridique || '';\n const socialPhoneSignature = brand.listPhones?.social || '';\n\n // Pour les cas hybrides des personnes ayant plusieurs rôles\n // Comme Morgane (Facturation + Satisfaction) et qui peut choisir plusieurs emails d'expédition\n // Il faut que la signature corresponde à l'adresse d'expédition\n // donc actuellement, on ne gère que satisfaction/resiliation/facturation\n const listGenericEmails: { email: string; forceRole: string }[] = [\n { email: satisfactionMail, forceRole: 'satisfaction' },\n { email: resiliationMail, forceRole: 'resiliation' },\n { email: facturationMail, forceRole: 'facturation' },\n ];\n const genericEmailUsed = listGenericEmails.find((e) => e.email === fromAddress);\n if (genericEmailUsed) {\n forceRole = genericEmailUsed.forceRole;\n }\n\n let roleSignature: string | null;\n let mailSignature: string | null;\n let phoneSignature: string | null;\n let horaires: string | null;\n [roleSignature, mailSignature, phoneSignature, horaires] = [\n 'Expert-Comptable',\n bonjourMail,\n null,\n 'Du lundi au vendredi de 9h à 18h',\n ];\n\n if (user?.roles && user.roles.some((r: any) => r.id === Role.DATA_OFFICER)) {\n // Signature data_officer\n user = {\n firstname: `L'équipe ${commercialName}`,\n isAll: true,\n };\n mailSignature = dataOfficerMail;\n roleSignature = '';\n } else if (\n intersection(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n (user?.roles ?? []).map((r: any) => r.id),\n [Role.FRONT_OFFICE, Role.SENIOR],\n ).length === 2\n ) {\n // Signature front senior\n user = {\n firstname: `L'équipe ${commercialName}`,\n isAll: true,\n };\n mailSignature = bonjourMail;\n roleSignature = '';\n } else if (forceRole === 'satisfaction') {\n // Signature satisfaction\n user = {\n firstname: 'Service satisfaction clients',\n isAll: true,\n };\n mailSignature = satisfactionMail;\n roleSignature = '';\n phoneSignature = standardPhoneSignature;\n } else if (forceRole === 'resiliation') {\n // Signature resiliation\n user = {\n firstname: 'Service satisfaction clients',\n isAll: true,\n };\n mailSignature = resiliationMail;\n roleSignature = '';\n phoneSignature = standardPhoneSignature;\n } else if (forceRole === 'social') {\n // Signature social\n user = {\n firstname: 'Service social',\n isAll: true,\n };\n mailSignature = socialMail;\n roleSignature = '';\n phoneSignature = socialPhoneSignature;\n } else if (forceRole === 'support') {\n // Signature support\n user = {\n firstname: 'Service Support',\n isAll: true,\n };\n mailSignature = supportMail;\n roleSignature = null;\n } else if (forceRole === 'juridique') {\n // Signature juridique\n user = {\n firstname: 'Service juridique',\n isAll: true,\n };\n mailSignature = juridiqueMail;\n roleSignature = null;\n phoneSignature = juridiquePhoneSignature;\n } else if (forceRole === 'facturation') {\n // Signature facturation\n user = {\n firstname: 'Service facturation',\n isAll: true,\n };\n mailSignature = facturationMail;\n roleSignature = null;\n phoneSignature = standardPhoneSignature;\n } else if (!user || forceRole === 'generique') {\n // Signature Clementine\n user = {\n firstname: `L'équipe ${commercialName}`,\n isAll: true,\n };\n roleSignature = '';\n } else if (user !== 0) {\n // Signature par défaut\n roleSignature = getRoleSignature(user);\n mailSignature = getMailSignature(user, idTypeBrand);\n horaires = getHoraires(user);\n phoneSignature = getPhoneSignature(user);\n }\n\n // Si on a une société, alors on remplace le lien calendly de base par le lien calendly interne\n // on n'affiche uniquement si le collaboreatur a bien des créneaux horaires\n if (\n society?.id &&\n user?.roles?.some((r: any) =>\n [Role.FRONT_OFFICE, Role.FACTURATION, Role.JURIDIC, Role.COMMERCIAL].includes(r.id),\n ) &&\n user?.usersTimeSlots?.length\n ) {\n const isJuridic = user?.roles?.some((r: any) => [Role.JURIDIC].includes(r.id));\n const isFactu = user?.roles?.some((r: any) => [Role.FACTURATION].includes(r.id));\n const isCommercial = user?.roles?.some((r: any) => [Role.COMMERCIAL].includes(r.id));\n let idType = TimeSlot.BILAN;\n if (isJuridic) idType = TimeSlot.EDIT_SOCIETY;\n if (isFactu) idType = TimeSlot.BILLING;\n if (isCommercial) idType = TimeSlot.SALES;\n const urlApp = brand.urlApp || '';\n user.calendlyUrl = `${urlApp}/appointment?uuid=${society?.externalId ? society.externalId : ''}&idType=${idType}`;\n }\n\n return ejs.render(signatureTemplate, {\n forceRole,\n isFacturation: user.roles ? user.roles.some((r: any) => r.id === Role.FACTURATION) : false,\n isDataOfficer: user.roles ? user.roles.some((r: any) => r.id === Role.DATA_OFFICER) : true,\n brandName,\n brandPostalAddress,\n brandCity,\n idTypeBrand,\n commercialName,\n iban,\n bic,\n hostS3,\n user,\n roleSignature,\n mailSignature,\n phoneSignature: commercialName !== 'Comptalib' && phoneSignature ? phoneSignature.replace(/\\s+/gm, '&nbsp;') : null,\n standardPhoneSignature: commercialName !== 'Comptalib' ? standardPhoneSignature.replace(/\\s+/gm, '&nbsp;') : null,\n horaires,\n primaryColor,\n supportMail,\n });\n}\n"]}
@@ -17,8 +17,8 @@ describe('acdVat utils', () => {
17
17
  expect(acdVatCodeToIdVat(AcdVatCode.REDUIT_10)).toBe(Vat.TX_10.id);
18
18
  expect(acdVatCodeToIdVat(AcdVatCode.REDUIT_5_5)).toBe(Vat.TX_5_5.id);
19
19
  expect(acdVatCodeToIdVat(AcdVatCode.REDUIT_2_1)).toBe(Vat.TX_2_1.id);
20
- expect(acdVatCodeToIdVat(AcdVatCode.INTRACOM)).toBe(Vat.INTRACOM_TX_20.id);
21
- expect(acdVatCodeToIdVat(AcdVatCode.AUTOL)).toBe(Vat.IMPORTATION_TX_20.id);
20
+ expect(acdVatCodeToIdVat(AcdVatCode.INTRACOM)).toBe(Vat.INTRACOM_WITHOUT_TAXE.id);
21
+ expect(acdVatCodeToIdVat(AcdVatCode.AUTOL)).toBe(Vat.IMPORTATION_WITHOUT_TAXE.id);
22
22
  expect(acdVatCodeToIdVat(AcdVatCode.NON_AFFECTE)).toBeNull();
23
23
  });
24
24
  });
@@ -1 +1 @@
1
- {"version":3,"file":"acdVat.spec.js","sourceRoot":"","sources":["../../../ts/utils/tests/acdVat.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEpE,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,IAAI,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACxD,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAChE,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACnE,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACrE,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACrE,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC3E,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC3E,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC7D,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChE,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnE,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrE,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrE,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QAC3E,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAC3E,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC/D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { describe, expect, test } from 'vitest';\nimport { Vat } from '../../types/Enum/Vat.js';\nimport { AcdVatCode } from '../../types/Interface/api/acd/Vat.js';\nimport { acdVatCodeToIdVat, idVatToAcdVatCode } from '../acdVat.js';\n\ndescribe('acdVat utils', () => {\n test('should map internal VAT ids to ACD VAT codes', () => {\n expect(idVatToAcdVatCode(Vat.TX_20.id)).toBe(AcdVatCode.NORMAL);\n expect(idVatToAcdVatCode(Vat.TX_10.id)).toBe(AcdVatCode.REDUIT_10);\n expect(idVatToAcdVatCode(Vat.TX_5_5.id)).toBe(AcdVatCode.REDUIT_5_5);\n expect(idVatToAcdVatCode(Vat.TX_2_1.id)).toBe(AcdVatCode.REDUIT_2_1);\n expect(idVatToAcdVatCode(Vat.INTRACOM_TX_20.id)).toBe(AcdVatCode.INTRACOM);\n expect(idVatToAcdVatCode(Vat.IMPORTATION_TX_20.id)).toBe(AcdVatCode.AUTOL);\n expect(idVatToAcdVatCode(Vat.WITHOUT_TAXE.id)).toBeNull();\n });\n\n test('should map ACD VAT codes back to internal VAT ids', () => {\n expect(acdVatCodeToIdVat(AcdVatCode.NORMAL)).toBe(Vat.TX_20.id);\n expect(acdVatCodeToIdVat(AcdVatCode.REDUIT_10)).toBe(Vat.TX_10.id);\n expect(acdVatCodeToIdVat(AcdVatCode.REDUIT_5_5)).toBe(Vat.TX_5_5.id);\n expect(acdVatCodeToIdVat(AcdVatCode.REDUIT_2_1)).toBe(Vat.TX_2_1.id);\n expect(acdVatCodeToIdVat(AcdVatCode.INTRACOM)).toBe(Vat.INTRACOM_TX_20.id);\n expect(acdVatCodeToIdVat(AcdVatCode.AUTOL)).toBe(Vat.IMPORTATION_TX_20.id);\n expect(acdVatCodeToIdVat(AcdVatCode.NON_AFFECTE)).toBeNull();\n });\n});\n"]}
1
+ {"version":3,"file":"acdVat.spec.js","sourceRoot":"","sources":["../../../ts/utils/tests/acdVat.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEpE,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,IAAI,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACxD,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAChE,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACnE,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACrE,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACrE,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC3E,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC3E,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC7D,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChE,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnE,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrE,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrE,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;QAClF,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;QAClF,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC/D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { describe, expect, test } from 'vitest';\nimport { Vat } from '../../types/Enum/Vat.js';\nimport { AcdVatCode } from '../../types/Interface/api/acd/Vat.js';\nimport { acdVatCodeToIdVat, idVatToAcdVatCode } from '../acdVat.js';\n\ndescribe('acdVat utils', () => {\n test('should map internal VAT ids to ACD VAT codes', () => {\n expect(idVatToAcdVatCode(Vat.TX_20.id)).toBe(AcdVatCode.NORMAL);\n expect(idVatToAcdVatCode(Vat.TX_10.id)).toBe(AcdVatCode.REDUIT_10);\n expect(idVatToAcdVatCode(Vat.TX_5_5.id)).toBe(AcdVatCode.REDUIT_5_5);\n expect(idVatToAcdVatCode(Vat.TX_2_1.id)).toBe(AcdVatCode.REDUIT_2_1);\n expect(idVatToAcdVatCode(Vat.INTRACOM_TX_20.id)).toBe(AcdVatCode.INTRACOM);\n expect(idVatToAcdVatCode(Vat.IMPORTATION_TX_20.id)).toBe(AcdVatCode.AUTOL);\n expect(idVatToAcdVatCode(Vat.WITHOUT_TAXE.id)).toBeNull();\n });\n\n test('should map ACD VAT codes back to internal VAT ids', () => {\n expect(acdVatCodeToIdVat(AcdVatCode.NORMAL)).toBe(Vat.TX_20.id);\n expect(acdVatCodeToIdVat(AcdVatCode.REDUIT_10)).toBe(Vat.TX_10.id);\n expect(acdVatCodeToIdVat(AcdVatCode.REDUIT_5_5)).toBe(Vat.TX_5_5.id);\n expect(acdVatCodeToIdVat(AcdVatCode.REDUIT_2_1)).toBe(Vat.TX_2_1.id);\n expect(acdVatCodeToIdVat(AcdVatCode.INTRACOM)).toBe(Vat.INTRACOM_WITHOUT_TAXE.id);\n expect(acdVatCodeToIdVat(AcdVatCode.AUTOL)).toBe(Vat.IMPORTATION_WITHOUT_TAXE.id);\n expect(acdVatCodeToIdVat(AcdVatCode.NON_AFFECTE)).toBeNull();\n });\n});\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@silexpert/core",
3
- "version": "2.0.93",
3
+ "version": "2.0.96",
4
4
  "description": "Silex Core perform HTTP Request and object binding. Silex core helps developers to retrieve and return formatted object",
5
5
  "keywords": [
6
6
  "accounting",
@@ -37,8 +37,12 @@ export class Account extends Resource {
37
37
  return this.axios.$post(`/society/${idSociety}/accountsSociety`, params);
38
38
  }
39
39
 
40
+ findOrCreateAccountsSociety(idSociety: number, params: CreateAccountSociety): Promise<IAccount> {
41
+ return this.axios.$post(`/society/${idSociety}/accountsSociety/find-or-create`, params);
42
+ }
43
+ // Temporaire : function à supprimer dès que le front sera mis à jour (getOrCreateAccountsSociety -> findOrCreateAccountsSociety)
40
44
  getOrCreateAccountsSociety(idSociety: number, params: CreateAccountSociety): Promise<IAccount> {
41
- return this.axios.$post(`/society/${idSociety}/accountsSociety/get-or-create`, params);
45
+ return this.findOrCreateAccountsSociety(idSociety, params);
42
46
  }
43
47
 
44
48
  getGenericAccounts(): Promise<BasePaginate<IAccount>> {
@@ -32,6 +32,8 @@ import {
32
32
  QueryToArchivedSociety,
33
33
  ReadFeatureAccess,
34
34
  QueryAdvancedSearchSociety,
35
+ CreateTestSociety,
36
+ ReadTestSociety,
35
37
  } from '../../types/index.js';
36
38
  import { CancelToken } from 'axios';
37
39
 
@@ -221,4 +223,8 @@ export class Society extends Resource {
221
223
  ...(signal ? { signal } : {}),
222
224
  });
223
225
  }
226
+
227
+ createTestSociety(data: CreateTestSociety): Promise<ReadTestSociety> {
228
+ return this.axios.$post('/society', data);
229
+ }
224
230
  }
@@ -23,6 +23,11 @@ export class QueryMandatePaginate {
23
23
  @IsString()
24
24
  mandateStatus?: string;
25
25
 
26
+ @ApiPropertyOptional()
27
+ @IsOptional()
28
+ @IsString()
29
+ effectiveAdresseDateStart?: string;
30
+
26
31
  @ApiPropertyOptional()
27
32
  @IsOptional()
28
33
  @IsBoolean()
@@ -0,0 +1,91 @@
1
+ import { ApiPropertyOptional } from '@nestjs/swagger';
2
+ import { ComptaType } from '../../../Enum/ComptaType.js';
3
+ import { VatRegime } from '../../../Enum/VatRegime.js';
4
+ import { LegalFormTypeEnum } from '../../../Enum/LegalForm.js';
5
+ import { Activity } from '../../../Enum/Activity.js';
6
+ import { TaxSystem } from '../../../Enum/TaxSystem.js';
7
+ import { ProfitsType } from '../../../Enum/ProfitsType.js';
8
+ import { FiscalRegime } from '../../../Enum/FiscalRegime.js';
9
+ import { IPermission } from '../../models/IPermission.js';
10
+ import { ISociety } from '../../models/ISociety.js';
11
+ import { IUser } from '../../models/IUser.js';
12
+
13
+ export class CreateTestSocietyPrestation {
14
+ @ApiPropertyOptional()
15
+ idPrestationList?: number;
16
+
17
+ @ApiPropertyOptional()
18
+ signed?: boolean;
19
+
20
+ @ApiPropertyOptional()
21
+ paid?: boolean;
22
+ }
23
+
24
+ export class CreateTestSocietyExercice {
25
+ @ApiPropertyOptional()
26
+ startDate?: Date;
27
+
28
+ @ApiPropertyOptional()
29
+ endDate?: Date;
30
+
31
+ @ApiPropertyOptional({ type: [CreateTestSocietyPrestation] })
32
+ prestations?: CreateTestSocietyPrestation[];
33
+ }
34
+
35
+ export class CreateTestSociety {
36
+ @ApiPropertyOptional()
37
+ name?: string;
38
+
39
+ @ApiPropertyOptional()
40
+ isTrialPeriod?: boolean;
41
+
42
+ @ApiPropertyOptional({ enum: ComptaType })
43
+ idComptaType?: ComptaType;
44
+
45
+ @ApiPropertyOptional({ enum: VatRegime })
46
+ idVatRegime?: VatRegime;
47
+
48
+ @ApiPropertyOptional({ enum: LegalFormTypeEnum })
49
+ idLegalForm?: LegalFormTypeEnum;
50
+
51
+ @ApiPropertyOptional({
52
+ description:
53
+ 'Identifiant GlobalRegime (core/ts/types/Enum/GlobalRegime.ts) — le premier choix disponible du régime est utilisé.',
54
+ })
55
+ idGlobalRegime?: number;
56
+
57
+ @ApiPropertyOptional({ enum: Activity })
58
+ idActivity?: Activity;
59
+
60
+ @ApiPropertyOptional({ enum: TaxSystem })
61
+ idTaxSystem?: TaxSystem;
62
+
63
+ @ApiPropertyOptional({ enum: ProfitsType })
64
+ profitsType?: ProfitsType;
65
+
66
+ @ApiPropertyOptional({ enum: FiscalRegime })
67
+ idFiscalRegime?: FiscalRegime;
68
+
69
+ @ApiPropertyOptional({ type: [CreateTestSocietyExercice] })
70
+ exercices?: CreateTestSocietyExercice[];
71
+
72
+ @ApiPropertyOptional()
73
+ email?: string;
74
+
75
+ @ApiPropertyOptional()
76
+ firstname?: string;
77
+
78
+ @ApiPropertyOptional()
79
+ lastname?: string;
80
+
81
+ @ApiPropertyOptional()
82
+ password?: string;
83
+
84
+ @ApiPropertyOptional()
85
+ permissions?: IPermission;
86
+ }
87
+
88
+ export interface ReadTestSociety {
89
+ society: ISociety;
90
+ user: IUser & { password: string };
91
+ }
package/ts/types/index.ts CHANGED
@@ -646,6 +646,7 @@ export * from './Interface/api/commercial/ReadStatsProspect.js';
646
646
  export * from './Interface/api/society/GetDataSociety.js';
647
647
  export * from './Interface/api/society/CleanupResult.js';
648
648
  export * from './Interface/api/society/CreateSociety.js';
649
+ export * from './Interface/api/society/CreateTestSociety.js';
649
650
  export * from './Interface/api/society/GetSocietyDetail.js';
650
651
  export * from './Interface/api/society/UpdateSociety.js';
651
652
  export * from './Interface/api/society/ListUserSociety.js';
@@ -47,11 +47,11 @@ export function acdVatCodeToIdVat(acdVatCode?: AcdVatCode | null): number | null
47
47
  case AcdVatCode.REDUIT_2_1:
48
48
  return Vat.TX_2_1.id;
49
49
  case AcdVatCode.INTRACOM:
50
- // L'information de taux est perdue dans le code ACD, on retombe sur l'intracom a 20% par defaut.
51
- return Vat.INTRACOM_TX_20.id;
50
+ // L'information de taux est perdue dans le code ACD, on retombe sur l'intracom a 0% par defaut.
51
+ return Vat.INTRACOM_WITHOUT_TAXE.id;
52
52
  case AcdVatCode.AUTOL:
53
- // L'information de taux est perdue dans le code ACD, on retombe sur l'importation a 20% par defaut.
54
- return Vat.IMPORTATION_TX_20.id;
53
+ // L'information de taux est perdue dans le code ACD, on retombe sur l'importation a 0% par defaut.
54
+ return Vat.IMPORTATION_WITHOUT_TAXE.id;
55
55
  case AcdVatCode.NON_AFFECTE:
56
56
  case AcdVatCode.ONI:
57
57
  case AcdVatCode.SUR_IMMOBILISATION:
@@ -103,13 +103,14 @@ export const bodyTemplate = `<html class="pdf-content">
103
103
  <% if ((settings && (settings.iban || settings.bic || settings.bank)) || paymentType) { %>
104
104
  <div class="row mt-30 space-between" style="page-break-inside: avoid !important;">
105
105
  <div>
106
- <% if ((settings && (settings.iban || settings.bic || settings.bank)) || paymentType) { %>
107
- <% if(paymentType) { %><%= languageTemplate.template.common.options.paymentType %> : <%= paymentType %><br/>
108
- <% if (!['Carte bancaire', 'Espèces', 'Chèque'].includes(paymentType)) { %>
109
- <% if(settings.bank) { %><%= languageTemplate.template.common.options.bank %> : <%= settings.bank %><br/><% } %>
110
- <% if(settings.iban) { %>IBAN : <%= settings.iban %><br/><% } %>
111
- <% if(settings.bic) { %>BIC : <%= settings.bic %><% } %>
112
- <% } %>
106
+ <% if (paymentType) { %>
107
+ <%= languageTemplate.template.common.options.paymentType %> : <%= paymentType %><br/>
108
+ <% } %>
109
+ <% if (!paymentType || !['Carte bancaire', 'Espèces', 'Chèque'].includes(paymentType)) { %>
110
+ <% if (settings) { %>
111
+ <% if(settings.bank) { %><%= languageTemplate.template.common.options.bank %> : <%= settings.bank %><br/><% } %>
112
+ <% if(settings.iban) { %>IBAN : <%= settings.iban %><br/><% } %>
113
+ <% if(settings.bic) { %>BIC : <%= settings.bic %><% } %>
113
114
  <% } %>
114
115
  <% } %>
115
116
  </div>
package/ts/utils/email.ts CHANGED
@@ -398,8 +398,8 @@ export function generateSignature(params: any): string {
398
398
  user,
399
399
  roleSignature,
400
400
  mailSignature,
401
- phoneSignature: phoneSignature ? phoneSignature.replace(/\s+/gm, '&nbsp;') : null,
402
- standardPhoneSignature: standardPhoneSignature.replace(/\s+/gm, '&nbsp;'),
401
+ phoneSignature: commercialName !== 'Comptalib' && phoneSignature ? phoneSignature.replace(/\s+/gm, '&nbsp;') : null,
402
+ standardPhoneSignature: commercialName !== 'Comptalib' ? standardPhoneSignature.replace(/\s+/gm, '&nbsp;') : null,
403
403
  horaires,
404
404
  primaryColor,
405
405
  supportMail,
@@ -19,8 +19,8 @@ describe('acdVat utils', () => {
19
19
  expect(acdVatCodeToIdVat(AcdVatCode.REDUIT_10)).toBe(Vat.TX_10.id);
20
20
  expect(acdVatCodeToIdVat(AcdVatCode.REDUIT_5_5)).toBe(Vat.TX_5_5.id);
21
21
  expect(acdVatCodeToIdVat(AcdVatCode.REDUIT_2_1)).toBe(Vat.TX_2_1.id);
22
- expect(acdVatCodeToIdVat(AcdVatCode.INTRACOM)).toBe(Vat.INTRACOM_TX_20.id);
23
- expect(acdVatCodeToIdVat(AcdVatCode.AUTOL)).toBe(Vat.IMPORTATION_TX_20.id);
22
+ expect(acdVatCodeToIdVat(AcdVatCode.INTRACOM)).toBe(Vat.INTRACOM_WITHOUT_TAXE.id);
23
+ expect(acdVatCodeToIdVat(AcdVatCode.AUTOL)).toBe(Vat.IMPORTATION_WITHOUT_TAXE.id);
24
24
  expect(acdVatCodeToIdVat(AcdVatCode.NON_AFFECTE)).toBeNull();
25
25
  });
26
26
  });