@silexpert/core 1.1.52 → 1.1.54

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 (102) hide show
  1. package/es/api/resources/Fusion.d.ts +5 -0
  2. package/es/api/resources/Fusion.d.ts.map +1 -0
  3. package/es/api/resources/Fusion.js +18 -0
  4. package/es/api/resources/Fusion.js.map +1 -0
  5. package/es/api/resources/VisualizedInformation.d.ts +8 -0
  6. package/es/api/resources/VisualizedInformation.d.ts.map +1 -0
  7. package/es/api/resources/VisualizedInformation.js +13 -0
  8. package/es/api/resources/VisualizedInformation.js.map +1 -0
  9. package/es/api/resources.d.ts +4 -0
  10. package/es/api/resources.d.ts.map +1 -1
  11. package/es/api/resources.js +4 -0
  12. package/es/api/resources.js.map +1 -1
  13. package/es/types/Enum/BrandClementine.d.ts.map +1 -1
  14. package/es/types/Enum/BrandClementine.js +31 -0
  15. package/es/types/Enum/BrandClementine.js.map +1 -1
  16. package/es/types/Enum/FiscalRegime.d.ts +5 -0
  17. package/es/types/Enum/FiscalRegime.d.ts.map +1 -1
  18. package/es/types/Enum/FiscalRegime.js +17 -0
  19. package/es/types/Enum/FiscalRegime.js.map +1 -1
  20. package/es/types/Enum/ProfitsType.d.ts +5 -0
  21. package/es/types/Enum/ProfitsType.d.ts.map +1 -1
  22. package/es/types/Enum/ProfitsType.js +12 -0
  23. package/es/types/Enum/ProfitsType.js.map +1 -1
  24. package/es/types/Enum/TaxSystem.d.ts +5 -2
  25. package/es/types/Enum/TaxSystem.d.ts.map +1 -1
  26. package/es/types/Enum/TaxSystem.js +3 -0
  27. package/es/types/Enum/TaxSystem.js.map +1 -1
  28. package/es/types/Enum/VisualizedInformation.d.ts +5 -0
  29. package/es/types/Enum/VisualizedInformation.d.ts.map +1 -0
  30. package/es/types/Enum/VisualizedInformation.js +6 -0
  31. package/es/types/Enum/VisualizedInformation.js.map +1 -0
  32. package/es/types/Interface/api/fusion/FusionSocieties.d.ts +5 -0
  33. package/es/types/Interface/api/fusion/FusionSocieties.d.ts.map +1 -0
  34. package/es/types/Interface/api/fusion/FusionSocieties.js +24 -0
  35. package/es/types/Interface/api/fusion/FusionSocieties.js.map +1 -0
  36. package/es/types/Interface/api/visualizedInformation/Query.d.ts +6 -0
  37. package/es/types/Interface/api/visualizedInformation/Query.d.ts.map +1 -0
  38. package/es/types/Interface/api/visualizedInformation/Query.js +26 -0
  39. package/es/types/Interface/api/visualizedInformation/Query.js.map +1 -0
  40. package/es/types/Interface/api/visualizedInformation/Update.d.ts +6 -0
  41. package/es/types/Interface/api/visualizedInformation/Update.d.ts.map +1 -0
  42. package/es/types/Interface/api/visualizedInformation/Update.js +25 -0
  43. package/es/types/Interface/api/visualizedInformation/Update.js.map +1 -0
  44. package/es/types/Interface/models/ISociety.d.ts +1 -0
  45. package/es/types/Interface/models/ISociety.d.ts.map +1 -1
  46. package/es/types/Interface/models/ISociety.js.map +1 -1
  47. package/es/types/Interface/models/IVisualizedInformation.d.ts +12 -0
  48. package/es/types/Interface/models/IVisualizedInformation.d.ts.map +1 -0
  49. package/es/types/Interface/models/IVisualizedInformation.js +2 -0
  50. package/es/types/Interface/models/IVisualizedInformation.js.map +1 -0
  51. package/es/types/index.d.ts +5 -0
  52. package/es/types/index.d.ts.map +1 -1
  53. package/es/types/index.js +5 -0
  54. package/es/types/index.js.map +1 -1
  55. package/es/utils/amount.d.ts.map +1 -1
  56. package/es/utils/amount.js +74 -293
  57. package/es/utils/amount.js.map +1 -1
  58. package/js/api/resources/Fusion.js +46 -0
  59. package/js/api/resources/Fusion.js.map +1 -0
  60. package/js/api/resources/VisualizedInformation.js +22 -0
  61. package/js/api/resources/VisualizedInformation.js.map +1 -0
  62. package/js/api/resources.js +5 -1
  63. package/js/api/resources.js.map +1 -1
  64. package/js/types/Enum/BrandClementine.js +30 -0
  65. package/js/types/Enum/BrandClementine.js.map +1 -1
  66. package/js/types/Enum/FiscalRegime.js +13 -0
  67. package/js/types/Enum/FiscalRegime.js.map +1 -1
  68. package/js/types/Enum/ProfitsType.js +9 -0
  69. package/js/types/Enum/ProfitsType.js.map +1 -1
  70. package/js/types/Enum/TaxSystem.js +6 -3
  71. package/js/types/Enum/TaxSystem.js.map +1 -1
  72. package/js/types/Enum/VisualizedInformation.js +11 -0
  73. package/js/types/Enum/VisualizedInformation.js.map +1 -0
  74. package/js/types/Interface/api/fusion/FusionSocieties.js +23 -0
  75. package/js/types/Interface/api/fusion/FusionSocieties.js.map +1 -0
  76. package/js/types/Interface/api/visualizedInformation/Query.js +24 -0
  77. package/js/types/Interface/api/visualizedInformation/Query.js.map +1 -0
  78. package/js/types/Interface/api/visualizedInformation/Update.js +24 -0
  79. package/js/types/Interface/api/visualizedInformation/Update.js.map +1 -0
  80. package/js/types/Interface/models/ISociety.js.map +1 -1
  81. package/js/types/Interface/models/IVisualizedInformation.js +6 -0
  82. package/js/types/Interface/models/IVisualizedInformation.js.map +1 -0
  83. package/js/types/index.js +53 -3
  84. package/js/types/index.js.map +1 -1
  85. package/js/utils/amount.js +65 -230
  86. package/js/utils/amount.js.map +1 -1
  87. package/package.json +1 -1
  88. package/ts/api/resources/Fusion.ts +7 -0
  89. package/ts/api/resources/VisualizedInformation.ts +16 -0
  90. package/ts/api/resources.ts +4 -0
  91. package/ts/types/Enum/BrandClementine.ts +31 -0
  92. package/ts/types/Enum/FiscalRegime.ts +19 -1
  93. package/ts/types/Enum/ProfitsType.ts +14 -1
  94. package/ts/types/Enum/TaxSystem.ts +5 -4
  95. package/ts/types/Enum/VisualizedInformation.ts +4 -0
  96. package/ts/types/Interface/api/fusion/FusionSocieties.ts +12 -0
  97. package/ts/types/Interface/api/visualizedInformation/Query.ts +14 -0
  98. package/ts/types/Interface/api/visualizedInformation/Update.ts +13 -0
  99. package/ts/types/Interface/models/ISociety.ts +1 -0
  100. package/ts/types/Interface/models/IVisualizedInformation.ts +14 -0
  101. package/ts/types/index.ts +6 -0
  102. package/ts/utils/amount.ts +86 -161
package/ts/types/index.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  // Interfaces
2
+ export * from './Interface/models/IVisualizedInformation';
2
3
  export * from './Interface/models/IApiError';
3
4
  export * from './Interface/models/ISms';
4
5
  export * from './Interface/models/IAccessToken';
@@ -315,6 +316,7 @@ export * from './Form/FormAuthenticate';
315
316
  export * from './Form/FormConnector';
316
317
 
317
318
  // Enums
319
+ export * from './Enum/VisualizedInformation';
318
320
  export * from './Enum/NafCode';
319
321
  export * from './Enum/Acceptance';
320
322
  export * from './Enum/FolderFile';
@@ -917,10 +919,14 @@ export * from './Interface/api/commercialImport/Query';
917
919
  export * from './Interface/api/commercialImport/Create';
918
920
  export * from './Interface/api/cashAndExpense/Create';
919
921
  export * from './Interface/api/accountsSectors/Create';
922
+ export * from './Interface/api/fusion/FusionSocieties';
923
+
920
924
  export * from './Interface/api/businessSector/Create';
921
925
  export * from './Interface/api/businessSector/Query';
922
926
  export * from './Interface/api/businessSector/Delete';
923
927
  export * from './Interface/api/accountsSectors/Query';
928
+ export * from './Interface/api/visualizedInformation/Query';
929
+ export * from './Interface/api/visualizedInformation/Update';
924
930
  // Enums types
925
931
  export * from './Interface/enum/Util';
926
932
  export * from './Interface/enum/Date';
@@ -50,172 +50,97 @@ export function integerToFormattedAmountObject(
50
50
  }
51
51
 
52
52
  /**
53
- * Convertit jusqu'à 999 999 999 999 999 (billion) *
53
+ * Convertit les nombres à virgule de 0 à 100 000 000 (100 millions) *
54
54
  * @param nombre
55
55
  * @returns {string}
56
56
  */
57
- function getUnite(nombre: number):string {
58
- let unite;
59
- switch (nombre) {
60
- // case 0: unite = 'zéro'; break;
61
- case 1: unite = 'un'; break;
62
- case 2: unite = 'deux'; break;
63
- case 3: unite = 'trois'; break;
64
- case 4: unite = 'quatre'; break;
65
- case 5: unite = 'cinq'; break;
66
- case 6: unite = 'six'; break;
67
- case 7: unite = 'sept'; break;
68
- case 8: unite = 'huit'; break;
69
- case 9: unite = 'neuf'; break;
70
- default: unite = 'zéro'; break;
71
- }// fin switch
72
- return unite;
57
+ const unites: string[] = [
58
+ '', 'un', 'deux', 'trois', 'quatre', 'cinq', 'six', 'sept', 'huit', 'neuf', 'dix',
59
+ 'onze', 'douze', 'treize', 'quatorze', 'quinze', 'seize', 'dix-sept', 'dix-huit', 'dix-neuf',
60
+ ];
61
+
62
+ const dizaines: string[] = [
63
+ '', '', 'vingt', 'trente', 'quarante', 'cinquante', 'soixante', 'soixante',
64
+ 'quatre-vingt', 'quatre-vingt',
65
+ ];
66
+
67
+ const groupes: string[] = ['', 'mille', 'million'];
68
+
69
+ function convertirGroupeEnLettres(groupe: number): string {
70
+ let groupeEnLettres = '';
71
+
72
+ const centaines = Math.floor(groupe / 100);
73
+ const dizainesEtUnites = groupe % 100;
74
+
75
+ if (centaines > 0) {
76
+ groupeEnLettres += `${unites[centaines] === 'un' ? '' : unites[centaines]} cent `;
77
+ }
78
+
79
+ if (dizainesEtUnites > 0) {
80
+ if (dizainesEtUnites <= 19) {
81
+ groupeEnLettres += unites[dizainesEtUnites];
82
+ } else {
83
+ const unite = dizainesEtUnites % 10;
84
+ const dizaine = Math.floor(dizainesEtUnites / 10);
85
+ groupeEnLettres += dizaines[dizaine];
86
+
87
+ if (unite > 0) {
88
+ if (dizaine === 7 || dizaine === 9) {
89
+ /* const dizaineTexte = */dizaines[dizaine].slice(0, -1);
90
+ const uniteTexte = unites[unite];
91
+ groupeEnLettres += `-${uniteTexte}`;
92
+ } else {
93
+ const uniteTexte = unites[unite];
94
+ groupeEnLettres += `-${uniteTexte}`;
95
+ }
96
+ }
97
+ }
98
+ }
99
+
100
+ return groupeEnLettres.trim();
73
101
  }
102
+ function convertirNombreEntierEnLettres(ent: number): string {
103
+ let entier = ent;
104
+ if (entier === 0) {
105
+ return 'zéro';
106
+ }
107
+
108
+ let resultat = '';
74
109
 
75
- function getDizaine(nombre: number):string {
76
- let dizaine;
77
- switch (nombre) {
78
- // case 10: dizaine = 'dix'; break;
79
- case 11: dizaine = 'onze'; break;
80
- case 12: dizaine = 'douze'; break;
81
- case 13: dizaine = 'treize'; break;
82
- case 14: dizaine = 'quatorze'; break;
83
- case 15: dizaine = 'quinze'; break;
84
- case 16: dizaine = 'seize'; break;
85
- case 17: dizaine = 'dix-sept'; break;
86
- case 18: dizaine = 'dix-huit'; break;
87
- case 19: dizaine = 'dix-neuf'; break;
88
- case 20: dizaine = 'vingt'; break;
89
- case 30: dizaine = 'trente'; break;
90
- case 40: dizaine = 'quarante'; break;
91
- case 50: dizaine = 'cinquante'; break;
92
- case 60: dizaine = 'soixante'; break;
93
- case 70: dizaine = 'soixante-dix'; break;
94
- case 80: dizaine = 'quatre-vingt'; break;
95
- case 90: dizaine = 'quatre-vingt-dix'; break;
96
- default: dizaine = 'dix'; break;
97
- }// fin switch
98
- return dizaine;
99
- }//-----------------------------------------------------------------------
110
+ let groupeIndex = 0;
111
+ while (entier > 0) {
112
+ const groupe = entier % 1000;
113
+ const groupeEnLettres = convertirGroupeEnLettres(groupe);
100
114
 
115
+ if (groupeEnLettres !== '') {
116
+ resultat = `${groupeEnLettres === 'un' && ['mille', 'cent'].includes(groupes[groupeIndex]) ? '' : groupeEnLettres} ${groupes[groupeIndex]}${groupeIndex === 2 && groupeEnLettres !== 'un' ? 's' : ''} ${resultat}`;
117
+ }
118
+
119
+ entier = Math.floor(entier / 1000);
120
+ groupeIndex += 1;
121
+ }
122
+
123
+ return resultat.trim();
124
+ }
125
+ function convertirNombreDecimalEnLettres(decimal: number): string {
126
+ const decimalArrondi = Math.round(decimal * 100);
127
+ return `virgule ${convertirNombreEntierEnLettres(decimalArrondi)}`;
128
+ }
101
129
  export function convertNumberToLetter(nombre: number): string {
102
- let quotient: number; let reste: number;
103
- let numberToLetter = '';
104
-
105
- if (nombre.toString().replace(/ /gi, '').length > 15) return 'dépassement de capacité';
106
- if (Number.isNaN(nombre.toString().replace(/ /gi, ''))) return 'Nombre non valide';
107
-
108
- const nb = parseFloat(nombre.toString().replace(/ /gi, ''));
109
- if (Math.ceil(nb) !== nb) return 'Nombre avec virgule non géré.';
110
-
111
- const n = nb.toString().length;
112
- switch (n) {
113
- // case 1: numberToLetter = getUnite(nb); break;
114
- case 2: if (nb > 19) {
115
- quotient = Math.floor(nb / 10);
116
- reste = nb % 10;
117
- if (nb < 71 || (nb > 79 && nb < 91)) {
118
- if (reste === 0) numberToLetter = getDizaine(quotient * 10);
119
- if (reste === 1) numberToLetter = `${getDizaine(quotient * 10)}-et-${getUnite(reste)}`;
120
- if (reste > 1) numberToLetter = `${getDizaine(quotient * 10)}-${getUnite(reste)}`;
121
- } else numberToLetter = `${getDizaine((quotient - 1) * 10)}-${getDizaine(10 + reste)}`;
122
- } else numberToLetter = getDizaine(nb);
123
- break;
124
- case 3: quotient = Math.floor(nb / 100);
125
- reste = nb % 100;
126
- if (quotient === 1 && reste === 0) numberToLetter = 'cent';
127
- if (quotient === 1 && reste !== 0) numberToLetter = `${'cent '}${convertNumberToLetter(reste)}`;
128
- if (quotient > 1 && reste === 0) numberToLetter = `${getUnite(quotient)} cents`;
129
- if (quotient > 1 && reste !== 0) numberToLetter = `${getUnite(quotient)} cent ${convertNumberToLetter(reste)}`;
130
- break;
131
- case 4: quotient = Math.floor(nb / 1000);
132
- reste = nb - quotient * 1000;
133
- if (quotient === 1 && reste === 0) numberToLetter = 'mille';
134
- if (quotient === 1 && reste !== 0) numberToLetter = `${'mille '}${convertNumberToLetter(reste)}`;
135
- if (quotient > 1 && reste === 0) numberToLetter = `${convertNumberToLetter(quotient)} mille`;
136
- if (quotient > 1 && reste !== 0) numberToLetter = `${convertNumberToLetter(quotient)} mille ${convertNumberToLetter(reste)}`;
137
- break;
138
- case 5: quotient = Math.floor(nb / 1000);
139
- reste = nb - quotient * 1000;
140
- if (quotient === 1 && reste === 0) numberToLetter = 'mille';
141
- if (quotient === 1 && reste !== 0) numberToLetter = `${'mille '}${convertNumberToLetter(reste)}`;
142
- if (quotient > 1 && reste === 0) numberToLetter = `${convertNumberToLetter(quotient)} mille`;
143
- if (quotient > 1 && reste !== 0) numberToLetter = `${convertNumberToLetter(quotient)} mille ${convertNumberToLetter(reste)}`;
144
- break;
145
- case 6: quotient = Math.floor(nb / 1000);
146
- reste = nb - quotient * 1000;
147
- if (quotient === 1 && reste === 0) numberToLetter = 'mille';
148
- if (quotient === 1 && reste !== 0) numberToLetter = `${'mille '}${convertNumberToLetter(reste)}`;
149
- if (quotient > 1 && reste === 0) numberToLetter = `${convertNumberToLetter(quotient)} mille`;
150
- if (quotient > 1 && reste !== 0) numberToLetter = `${convertNumberToLetter(quotient)} mille ${convertNumberToLetter(reste)}`;
151
- break;
152
- case 7: quotient = Math.floor(nb / 1000000);
153
- reste = nb % 1000000;
154
- if (quotient === 1 && reste === 0) numberToLetter = 'un million';
155
- if (quotient === 1 && reste !== 0) numberToLetter = `${'un million '}${convertNumberToLetter(reste)}`;
156
- if (quotient > 1 && reste === 0) numberToLetter = `${convertNumberToLetter(quotient)} millions`;
157
- if (quotient > 1 && reste !== 0) numberToLetter = `${convertNumberToLetter(quotient)} millions ${convertNumberToLetter(reste)}`;
158
- break;
159
- case 8: quotient = Math.floor(nb / 1000000);
160
- reste = nb % 1000000;
161
- if (quotient === 1 && reste === 0) numberToLetter = 'un million';
162
- if (quotient === 1 && reste !== 0) numberToLetter = `${'un million '}${convertNumberToLetter(reste)}`;
163
- if (quotient > 1 && reste === 0) numberToLetter = `${convertNumberToLetter(quotient)} millions`;
164
- if (quotient > 1 && reste !== 0) numberToLetter = `${convertNumberToLetter(quotient)} millions ${convertNumberToLetter(reste)}`;
165
- break;
166
- case 9: quotient = Math.floor(nb / 1000000);
167
- reste = nb % 1000000;
168
- if (quotient === 1 && reste === 0) numberToLetter = 'un million';
169
- if (quotient === 1 && reste !== 0) numberToLetter = `${'un million '}${convertNumberToLetter(reste)}`;
170
- if (quotient > 1 && reste === 0) numberToLetter = `${convertNumberToLetter(quotient)} millions`;
171
- if (quotient > 1 && reste !== 0) numberToLetter = `${convertNumberToLetter(quotient)} millions ${convertNumberToLetter(reste)}`;
172
- break;
173
- case 10: quotient = Math.floor(nb / 1000000000);
174
- reste = nb - quotient * 1000000000;
175
- if (quotient === 1 && reste === 0) numberToLetter = 'un milliard';
176
- if (quotient === 1 && reste !== 0) numberToLetter = `${'un milliard '}${convertNumberToLetter(reste)}`;
177
- if (quotient > 1 && reste === 0) numberToLetter = `${convertNumberToLetter(quotient)} milliards`;
178
- if (quotient > 1 && reste !== 0) numberToLetter = `${convertNumberToLetter(quotient)} milliards ${convertNumberToLetter(reste)}`;
179
- break;
180
- case 11: quotient = Math.floor(nb / 1000000000);
181
- reste = nb - quotient * 1000000000;
182
- if (quotient === 1 && reste === 0) numberToLetter = 'un milliard';
183
- if (quotient === 1 && reste !== 0) numberToLetter = `${'un milliard '}${convertNumberToLetter(reste)}`;
184
- if (quotient > 1 && reste === 0) numberToLetter = `${convertNumberToLetter(quotient)} milliards`;
185
- if (quotient > 1 && reste !== 0) numberToLetter = `${convertNumberToLetter(quotient)} milliards ${convertNumberToLetter(reste)}`;
186
- break;
187
- case 12: quotient = Math.floor(nb / 1000000000);
188
- reste = nb - quotient * 1000000000;
189
- if (quotient === 1 && reste === 0) numberToLetter = 'un milliard';
190
- if (quotient === 1 && reste !== 0) numberToLetter = `${'un milliard '}${convertNumberToLetter(reste)}`;
191
- if (quotient > 1 && reste === 0) numberToLetter = `${convertNumberToLetter(quotient)} milliards`;
192
- if (quotient > 1 && reste !== 0) numberToLetter = `${convertNumberToLetter(quotient)} milliards ${convertNumberToLetter(reste)}`;
193
- break;
194
- case 13: quotient = Math.floor(nb / 1000000000000);
195
- reste = nb - quotient * 1000000000000;
196
- if (quotient === 1 && reste === 0) numberToLetter = 'un billion';
197
- if (quotient === 1 && reste !== 0) numberToLetter = `${'un billion '}${convertNumberToLetter(reste)}`;
198
- if (quotient > 1 && reste === 0) numberToLetter = `${convertNumberToLetter(quotient)} billions`;
199
- if (quotient > 1 && reste !== 0) numberToLetter = `${convertNumberToLetter(quotient)} billions ${convertNumberToLetter(reste)}`;
200
- break;
201
- case 14: quotient = Math.floor(nb / 1000000000000);
202
- reste = nb - quotient * 1000000000000;
203
- if (quotient === 1 && reste === 0) numberToLetter = 'un billion';
204
- if (quotient === 1 && reste !== 0) numberToLetter = `${'un billion '}${convertNumberToLetter(reste)}`;
205
- if (quotient > 1 && reste === 0) numberToLetter = `${convertNumberToLetter(quotient)} billions`;
206
- if (quotient > 1 && reste !== 0) numberToLetter = `${convertNumberToLetter(quotient)} billions ${convertNumberToLetter(reste)}`;
207
- break;
208
- case 15: quotient = Math.floor(nb / 1000000000000);
209
- reste = nb - quotient * 1000000000000;
210
- if (quotient === 1 && reste === 0) numberToLetter = 'un billion';
211
- if (quotient === 1 && reste !== 0) numberToLetter = `${'un billion '}${convertNumberToLetter(reste)}`;
212
- if (quotient > 1 && reste === 0) numberToLetter = `${convertNumberToLetter(quotient)} billions`;
213
- if (quotient > 1 && reste !== 0) numberToLetter = `${convertNumberToLetter(quotient)} billions ${convertNumberToLetter(reste)}`;
214
- break;
215
- default: numberToLetter = getUnite(nb); break;
216
- } // fin switch
217
- /* respect de l'accord de quatre-vingt */
218
- if (numberToLetter.substr(numberToLetter.length - 'quatre-vingt'.length, 'quatre-vingt'.length) === 'quatre-vingt') numberToLetter += 's';
219
-
220
- return numberToLetter;
130
+ const partieEntiere = Math.floor(nombre);
131
+ const partieDecimale = nombre - partieEntiere;
132
+
133
+ let resultat = '';
134
+
135
+ if (partieEntiere === 0) {
136
+ resultat = 'zéro';
137
+ } else {
138
+ resultat = convertirNombreEntierEnLettres(partieEntiere);
139
+ }
140
+
141
+ if (partieDecimale > 0) {
142
+ resultat += ` ${convertirNombreDecimalEnLettres(partieDecimale)}`;
143
+ }
144
+
145
+ return resultat;
221
146
  }