@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
@@ -46,240 +46,75 @@ function integerToFormattedAmountObject(value, options = {
46
46
  });
47
47
  }
48
48
  /**
49
- * Convertit jusqu'à 999 999 999 999 999 (billion) *
49
+ * Convertit les nombres à virgule de 0 à 100 000 000 (100 millions) *
50
50
  * @param nombre
51
51
  * @returns {string}
52
52
  */
53
- function getUnite(nombre) {
54
- let unite;
55
- switch (nombre) {
56
- // case 0: unite = 'zéro'; break;
57
- case 1:
58
- unite = 'un';
59
- break;
60
- case 2:
61
- unite = 'deux';
62
- break;
63
- case 3:
64
- unite = 'trois';
65
- break;
66
- case 4:
67
- unite = 'quatre';
68
- break;
69
- case 5:
70
- unite = 'cinq';
71
- break;
72
- case 6:
73
- unite = 'six';
74
- break;
75
- case 7:
76
- unite = 'sept';
77
- break;
78
- case 8:
79
- unite = 'huit';
80
- break;
81
- case 9:
82
- unite = 'neuf';
83
- break;
84
- default:
85
- unite = 'zéro';
86
- break;
87
- } // fin switch
88
- return unite;
53
+ const unites = ['', 'un', 'deux', 'trois', 'quatre', 'cinq', 'six', 'sept', 'huit', 'neuf', 'dix', 'onze', 'douze', 'treize', 'quatorze', 'quinze', 'seize', 'dix-sept', 'dix-huit', 'dix-neuf'];
54
+ const dizaines = ['', '', 'vingt', 'trente', 'quarante', 'cinquante', 'soixante', 'soixante', 'quatre-vingt', 'quatre-vingt'];
55
+ const groupes = ['', 'mille', 'million'];
56
+ function convertirGroupeEnLettres(groupe) {
57
+ let groupeEnLettres = '';
58
+ const centaines = Math.floor(groupe / 100);
59
+ const dizainesEtUnites = groupe % 100;
60
+ if (centaines > 0) {
61
+ groupeEnLettres += `${unites[centaines] === 'un' ? '' : unites[centaines]} cent `;
62
+ }
63
+ if (dizainesEtUnites > 0) {
64
+ if (dizainesEtUnites <= 19) {
65
+ groupeEnLettres += unites[dizainesEtUnites];
66
+ } else {
67
+ const unite = dizainesEtUnites % 10;
68
+ const dizaine = Math.floor(dizainesEtUnites / 10);
69
+ groupeEnLettres += dizaines[dizaine];
70
+ if (unite > 0) {
71
+ if (dizaine === 7 || dizaine === 9) {
72
+ /* const dizaineTexte = */dizaines[dizaine].slice(0, -1);
73
+ const uniteTexte = unites[unite];
74
+ groupeEnLettres += `-${uniteTexte}`;
75
+ } else {
76
+ const uniteTexte = unites[unite];
77
+ groupeEnLettres += `-${uniteTexte}`;
78
+ }
79
+ }
80
+ }
81
+ }
82
+ return groupeEnLettres.trim();
83
+ }
84
+ function convertirNombreEntierEnLettres(ent) {
85
+ let entier = ent;
86
+ if (entier === 0) {
87
+ return 'zéro';
88
+ }
89
+ let resultat = '';
90
+ let groupeIndex = 0;
91
+ while (entier > 0) {
92
+ const groupe = entier % 1000;
93
+ const groupeEnLettres = convertirGroupeEnLettres(groupe);
94
+ if (groupeEnLettres !== '') {
95
+ resultat = `${groupeEnLettres === 'un' && ['mille', 'cent'].includes(groupes[groupeIndex]) ? '' : groupeEnLettres} ${groupes[groupeIndex]}${groupeIndex === 2 && groupeEnLettres !== 'un' ? 's' : ''} ${resultat}`;
96
+ }
97
+ entier = Math.floor(entier / 1000);
98
+ groupeIndex += 1;
99
+ }
100
+ return resultat.trim();
101
+ }
102
+ function convertirNombreDecimalEnLettres(decimal) {
103
+ const decimalArrondi = Math.round(decimal * 100);
104
+ return `virgule ${convertirNombreEntierEnLettres(decimalArrondi)}`;
89
105
  }
90
- function getDizaine(nombre) {
91
- let dizaine;
92
- switch (nombre) {
93
- // case 10: dizaine = 'dix'; break;
94
- case 11:
95
- dizaine = 'onze';
96
- break;
97
- case 12:
98
- dizaine = 'douze';
99
- break;
100
- case 13:
101
- dizaine = 'treize';
102
- break;
103
- case 14:
104
- dizaine = 'quatorze';
105
- break;
106
- case 15:
107
- dizaine = 'quinze';
108
- break;
109
- case 16:
110
- dizaine = 'seize';
111
- break;
112
- case 17:
113
- dizaine = 'dix-sept';
114
- break;
115
- case 18:
116
- dizaine = 'dix-huit';
117
- break;
118
- case 19:
119
- dizaine = 'dix-neuf';
120
- break;
121
- case 20:
122
- dizaine = 'vingt';
123
- break;
124
- case 30:
125
- dizaine = 'trente';
126
- break;
127
- case 40:
128
- dizaine = 'quarante';
129
- break;
130
- case 50:
131
- dizaine = 'cinquante';
132
- break;
133
- case 60:
134
- dizaine = 'soixante';
135
- break;
136
- case 70:
137
- dizaine = 'soixante-dix';
138
- break;
139
- case 80:
140
- dizaine = 'quatre-vingt';
141
- break;
142
- case 90:
143
- dizaine = 'quatre-vingt-dix';
144
- break;
145
- default:
146
- dizaine = 'dix';
147
- break;
148
- } // fin switch
149
- return dizaine;
150
- } //-----------------------------------------------------------------------
151
106
  function convertNumberToLetter(nombre) {
152
- let quotient;
153
- let reste;
154
- let numberToLetter = '';
155
- if (nombre.toString().replace(/ /gi, '').length > 15) return 'dépassement de capacité';
156
- if (Number.isNaN(nombre.toString().replace(/ /gi, ''))) return 'Nombre non valide';
157
- const nb = parseFloat(nombre.toString().replace(/ /gi, ''));
158
- if (Math.ceil(nb) !== nb) return 'Nombre avec virgule non géré.';
159
- const n = nb.toString().length;
160
- switch (n) {
161
- // case 1: numberToLetter = getUnite(nb); break;
162
- case 2:
163
- if (nb > 19) {
164
- quotient = Math.floor(nb / 10);
165
- reste = nb % 10;
166
- if (nb < 71 || nb > 79 && nb < 91) {
167
- if (reste === 0) numberToLetter = getDizaine(quotient * 10);
168
- if (reste === 1) numberToLetter = `${getDizaine(quotient * 10)}-et-${getUnite(reste)}`;
169
- if (reste > 1) numberToLetter = `${getDizaine(quotient * 10)}-${getUnite(reste)}`;
170
- } else numberToLetter = `${getDizaine((quotient - 1) * 10)}-${getDizaine(10 + reste)}`;
171
- } else numberToLetter = getDizaine(nb);
172
- break;
173
- case 3:
174
- quotient = Math.floor(nb / 100);
175
- reste = nb % 100;
176
- if (quotient === 1 && reste === 0) numberToLetter = 'cent';
177
- if (quotient === 1 && reste !== 0) numberToLetter = `${'cent '}${convertNumberToLetter(reste)}`;
178
- if (quotient > 1 && reste === 0) numberToLetter = `${getUnite(quotient)} cents`;
179
- if (quotient > 1 && reste !== 0) numberToLetter = `${getUnite(quotient)} cent ${convertNumberToLetter(reste)}`;
180
- break;
181
- case 4:
182
- quotient = Math.floor(nb / 1000);
183
- reste = nb - quotient * 1000;
184
- if (quotient === 1 && reste === 0) numberToLetter = 'mille';
185
- if (quotient === 1 && reste !== 0) numberToLetter = `${'mille '}${convertNumberToLetter(reste)}`;
186
- if (quotient > 1 && reste === 0) numberToLetter = `${convertNumberToLetter(quotient)} mille`;
187
- if (quotient > 1 && reste !== 0) numberToLetter = `${convertNumberToLetter(quotient)} mille ${convertNumberToLetter(reste)}`;
188
- break;
189
- case 5:
190
- quotient = Math.floor(nb / 1000);
191
- reste = nb - quotient * 1000;
192
- if (quotient === 1 && reste === 0) numberToLetter = 'mille';
193
- if (quotient === 1 && reste !== 0) numberToLetter = `${'mille '}${convertNumberToLetter(reste)}`;
194
- if (quotient > 1 && reste === 0) numberToLetter = `${convertNumberToLetter(quotient)} mille`;
195
- if (quotient > 1 && reste !== 0) numberToLetter = `${convertNumberToLetter(quotient)} mille ${convertNumberToLetter(reste)}`;
196
- break;
197
- case 6:
198
- quotient = Math.floor(nb / 1000);
199
- reste = nb - quotient * 1000;
200
- if (quotient === 1 && reste === 0) numberToLetter = 'mille';
201
- if (quotient === 1 && reste !== 0) numberToLetter = `${'mille '}${convertNumberToLetter(reste)}`;
202
- if (quotient > 1 && reste === 0) numberToLetter = `${convertNumberToLetter(quotient)} mille`;
203
- if (quotient > 1 && reste !== 0) numberToLetter = `${convertNumberToLetter(quotient)} mille ${convertNumberToLetter(reste)}`;
204
- break;
205
- case 7:
206
- quotient = Math.floor(nb / 1000000);
207
- reste = nb % 1000000;
208
- if (quotient === 1 && reste === 0) numberToLetter = 'un million';
209
- if (quotient === 1 && reste !== 0) numberToLetter = `${'un million '}${convertNumberToLetter(reste)}`;
210
- if (quotient > 1 && reste === 0) numberToLetter = `${convertNumberToLetter(quotient)} millions`;
211
- if (quotient > 1 && reste !== 0) numberToLetter = `${convertNumberToLetter(quotient)} millions ${convertNumberToLetter(reste)}`;
212
- break;
213
- case 8:
214
- quotient = Math.floor(nb / 1000000);
215
- reste = nb % 1000000;
216
- if (quotient === 1 && reste === 0) numberToLetter = 'un million';
217
- if (quotient === 1 && reste !== 0) numberToLetter = `${'un million '}${convertNumberToLetter(reste)}`;
218
- if (quotient > 1 && reste === 0) numberToLetter = `${convertNumberToLetter(quotient)} millions`;
219
- if (quotient > 1 && reste !== 0) numberToLetter = `${convertNumberToLetter(quotient)} millions ${convertNumberToLetter(reste)}`;
220
- break;
221
- case 9:
222
- quotient = Math.floor(nb / 1000000);
223
- reste = nb % 1000000;
224
- if (quotient === 1 && reste === 0) numberToLetter = 'un million';
225
- if (quotient === 1 && reste !== 0) numberToLetter = `${'un million '}${convertNumberToLetter(reste)}`;
226
- if (quotient > 1 && reste === 0) numberToLetter = `${convertNumberToLetter(quotient)} millions`;
227
- if (quotient > 1 && reste !== 0) numberToLetter = `${convertNumberToLetter(quotient)} millions ${convertNumberToLetter(reste)}`;
228
- break;
229
- case 10:
230
- quotient = Math.floor(nb / 1000000000);
231
- reste = nb - quotient * 1000000000;
232
- if (quotient === 1 && reste === 0) numberToLetter = 'un milliard';
233
- if (quotient === 1 && reste !== 0) numberToLetter = `${'un milliard '}${convertNumberToLetter(reste)}`;
234
- if (quotient > 1 && reste === 0) numberToLetter = `${convertNumberToLetter(quotient)} milliards`;
235
- if (quotient > 1 && reste !== 0) numberToLetter = `${convertNumberToLetter(quotient)} milliards ${convertNumberToLetter(reste)}`;
236
- break;
237
- case 11:
238
- quotient = Math.floor(nb / 1000000000);
239
- reste = nb - quotient * 1000000000;
240
- if (quotient === 1 && reste === 0) numberToLetter = 'un milliard';
241
- if (quotient === 1 && reste !== 0) numberToLetter = `${'un milliard '}${convertNumberToLetter(reste)}`;
242
- if (quotient > 1 && reste === 0) numberToLetter = `${convertNumberToLetter(quotient)} milliards`;
243
- if (quotient > 1 && reste !== 0) numberToLetter = `${convertNumberToLetter(quotient)} milliards ${convertNumberToLetter(reste)}`;
244
- break;
245
- case 12:
246
- quotient = Math.floor(nb / 1000000000);
247
- reste = nb - quotient * 1000000000;
248
- if (quotient === 1 && reste === 0) numberToLetter = 'un milliard';
249
- if (quotient === 1 && reste !== 0) numberToLetter = `${'un milliard '}${convertNumberToLetter(reste)}`;
250
- if (quotient > 1 && reste === 0) numberToLetter = `${convertNumberToLetter(quotient)} milliards`;
251
- if (quotient > 1 && reste !== 0) numberToLetter = `${convertNumberToLetter(quotient)} milliards ${convertNumberToLetter(reste)}`;
252
- break;
253
- case 13:
254
- quotient = Math.floor(nb / 1000000000000);
255
- reste = nb - quotient * 1000000000000;
256
- if (quotient === 1 && reste === 0) numberToLetter = 'un billion';
257
- if (quotient === 1 && reste !== 0) numberToLetter = `${'un billion '}${convertNumberToLetter(reste)}`;
258
- if (quotient > 1 && reste === 0) numberToLetter = `${convertNumberToLetter(quotient)} billions`;
259
- if (quotient > 1 && reste !== 0) numberToLetter = `${convertNumberToLetter(quotient)} billions ${convertNumberToLetter(reste)}`;
260
- break;
261
- case 14:
262
- quotient = Math.floor(nb / 1000000000000);
263
- reste = nb - quotient * 1000000000000;
264
- if (quotient === 1 && reste === 0) numberToLetter = 'un billion';
265
- if (quotient === 1 && reste !== 0) numberToLetter = `${'un billion '}${convertNumberToLetter(reste)}`;
266
- if (quotient > 1 && reste === 0) numberToLetter = `${convertNumberToLetter(quotient)} billions`;
267
- if (quotient > 1 && reste !== 0) numberToLetter = `${convertNumberToLetter(quotient)} billions ${convertNumberToLetter(reste)}`;
268
- break;
269
- case 15:
270
- quotient = Math.floor(nb / 1000000000000);
271
- reste = nb - quotient * 1000000000000;
272
- if (quotient === 1 && reste === 0) numberToLetter = 'un billion';
273
- if (quotient === 1 && reste !== 0) numberToLetter = `${'un billion '}${convertNumberToLetter(reste)}`;
274
- if (quotient > 1 && reste === 0) numberToLetter = `${convertNumberToLetter(quotient)} billions`;
275
- if (quotient > 1 && reste !== 0) numberToLetter = `${convertNumberToLetter(quotient)} billions ${convertNumberToLetter(reste)}`;
276
- break;
277
- default:
278
- numberToLetter = getUnite(nb);
279
- break;
280
- } // fin switch
281
- /* respect de l'accord de quatre-vingt */
282
- if (numberToLetter.substr(numberToLetter.length - 'quatre-vingt'.length, 'quatre-vingt'.length) === 'quatre-vingt') numberToLetter += 's';
283
- return numberToLetter;
107
+ const partieEntiere = Math.floor(nombre);
108
+ const partieDecimale = nombre - partieEntiere;
109
+ let resultat = '';
110
+ if (partieEntiere === 0) {
111
+ resultat = 'zéro';
112
+ } else {
113
+ resultat = convertirNombreEntierEnLettres(partieEntiere);
114
+ }
115
+ if (partieDecimale > 0) {
116
+ resultat += ` ${convertirNombreDecimalEnLettres(partieDecimale)}`;
117
+ }
118
+ return resultat;
284
119
  }
285
120
  //# sourceMappingURL=amount.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"amount.js","names":["integerToFormattedAmountString","exports","integerToFormattedAmountObject","convertNumberToLetter","_Util","require","value","abs","Math","integer","trunc","cents","round","max","integerWithMask","split","reduceRight","acc","char","i","length","trim","options","thousandSeparator","result","sign","MathematicalSign","PLUS","LESS","EQUAL","integerValue","centValue","Object","assign","formattedValue","getUnite","nombre","unite","getDizaine","dizaine","quotient","reste","numberToLetter","toString","replace","Number","isNaN","nb","parseFloat","ceil","n","floor","substr"],"sources":["../../ts/utils/amount.ts"],"sourcesContent":["import { MathematicalSign } from '../types/Enum/Util';\nimport { FormattedAmount } from '../types/Interface/api/amount/FormattedAmount';\n\nexport function integerToFormattedAmountString(value: number): string {\n const abs = Math.abs(value / 100);\n let integer = Math.trunc(abs);\n let cents = Math.round(abs * 100 - integer * 100);\n\n while (cents >= 100) {\n cents = Math.max(0, cents - 100);\n integer += 1;\n }\n\n const integerWithMask = `${integer}`.split('').reduceRight((acc, char, i, { length }) => `${char}${(length - (i + 1)) % 3 === 0 ? ' ' : ''}${acc}`, '').trim();\n return `${value < 0 ? '- ' : ''}${integerWithMask},${cents < 10 ? '0' : ''}${cents}`;\n}\n\nexport function integerToFormattedAmountObject(\n value: number,\n options: {\n thousandSeparator?: string;\n } = {\n thousandSeparator: ' ',\n },\n): FormattedAmount {\n const { thousandSeparator } = options;\n const abs = Math.abs(value / 100);\n let integer = Math.trunc(abs);\n let cents = Math.round(abs * 100 - integer * 100);\n\n while (cents >= 100) {\n cents = Math.max(0, cents - 100);\n integer += 1;\n }\n\n const result = {\n value,\n sign: value > 0 ? MathematicalSign.PLUS : value < 0 ? MathematicalSign.LESS : MathematicalSign.EQUAL,\n integerValue: `${integer}`\n .split('')\n .reduceRight((acc, char, i, { length }) => `${char}${(length - (i + 1)) % 3 === 0 ? thousandSeparator : ''}${acc}`, '')\n .trim(),\n centValue: `${cents < 10 ? '0' : ''}${cents}`,\n };\n\n return {\n ...result,\n formattedValue: `${result.sign !== MathematicalSign.EQUAL ? `${result.sign} ` : ''}${result.integerValue},${result.centValue}`,\n };\n}\n\n/**\n * Convertit jusqu'à 999 999 999 999 999 (billion) *\n * @param nombre\n * @returns {string}\n */\nfunction getUnite(nombre: number):string {\n let unite;\n switch (nombre) {\n // case 0: unite = 'zéro'; break;\n case 1: unite = 'un'; break;\n case 2: unite = 'deux'; break;\n case 3: unite = 'trois'; break;\n case 4: unite = 'quatre'; break;\n case 5: unite = 'cinq'; break;\n case 6: unite = 'six'; break;\n case 7: unite = 'sept'; break;\n case 8: unite = 'huit'; break;\n case 9: unite = 'neuf'; break;\n default: unite = 'zéro'; break;\n }// fin switch\n return unite;\n}\n\nfunction getDizaine(nombre: number):string {\n let dizaine;\n switch (nombre) {\n // case 10: dizaine = 'dix'; break;\n case 11: dizaine = 'onze'; break;\n case 12: dizaine = 'douze'; break;\n case 13: dizaine = 'treize'; break;\n case 14: dizaine = 'quatorze'; break;\n case 15: dizaine = 'quinze'; break;\n case 16: dizaine = 'seize'; break;\n case 17: dizaine = 'dix-sept'; break;\n case 18: dizaine = 'dix-huit'; break;\n case 19: dizaine = 'dix-neuf'; break;\n case 20: dizaine = 'vingt'; break;\n case 30: dizaine = 'trente'; break;\n case 40: dizaine = 'quarante'; break;\n case 50: dizaine = 'cinquante'; break;\n case 60: dizaine = 'soixante'; break;\n case 70: dizaine = 'soixante-dix'; break;\n case 80: dizaine = 'quatre-vingt'; break;\n case 90: dizaine = 'quatre-vingt-dix'; break;\n default: dizaine = 'dix'; break;\n }// fin switch\n return dizaine;\n}//-----------------------------------------------------------------------\n\nexport function convertNumberToLetter(nombre: number): string {\n let quotient: number; let reste: number;\n let numberToLetter = '';\n\n if (nombre.toString().replace(/ /gi, '').length > 15) return 'dépassement de capacité';\n if (Number.isNaN(nombre.toString().replace(/ /gi, ''))) return 'Nombre non valide';\n\n const nb = parseFloat(nombre.toString().replace(/ /gi, ''));\n if (Math.ceil(nb) !== nb) return 'Nombre avec virgule non géré.';\n\n const n = nb.toString().length;\n switch (n) {\n // case 1: numberToLetter = getUnite(nb); break;\n case 2: if (nb > 19) {\n quotient = Math.floor(nb / 10);\n reste = nb % 10;\n if (nb < 71 || (nb > 79 && nb < 91)) {\n if (reste === 0) numberToLetter = getDizaine(quotient * 10);\n if (reste === 1) numberToLetter = `${getDizaine(quotient * 10)}-et-${getUnite(reste)}`;\n if (reste > 1) numberToLetter = `${getDizaine(quotient * 10)}-${getUnite(reste)}`;\n } else numberToLetter = `${getDizaine((quotient - 1) * 10)}-${getDizaine(10 + reste)}`;\n } else numberToLetter = getDizaine(nb);\n break;\n case 3: quotient = Math.floor(nb / 100);\n reste = nb % 100;\n if (quotient === 1 && reste === 0) numberToLetter = 'cent';\n if (quotient === 1 && reste !== 0) numberToLetter = `${'cent '}${convertNumberToLetter(reste)}`;\n if (quotient > 1 && reste === 0) numberToLetter = `${getUnite(quotient)} cents`;\n if (quotient > 1 && reste !== 0) numberToLetter = `${getUnite(quotient)} cent ${convertNumberToLetter(reste)}`;\n break;\n case 4: quotient = Math.floor(nb / 1000);\n reste = nb - quotient * 1000;\n if (quotient === 1 && reste === 0) numberToLetter = 'mille';\n if (quotient === 1 && reste !== 0) numberToLetter = `${'mille '}${convertNumberToLetter(reste)}`;\n if (quotient > 1 && reste === 0) numberToLetter = `${convertNumberToLetter(quotient)} mille`;\n if (quotient > 1 && reste !== 0) numberToLetter = `${convertNumberToLetter(quotient)} mille ${convertNumberToLetter(reste)}`;\n break;\n case 5: quotient = Math.floor(nb / 1000);\n reste = nb - quotient * 1000;\n if (quotient === 1 && reste === 0) numberToLetter = 'mille';\n if (quotient === 1 && reste !== 0) numberToLetter = `${'mille '}${convertNumberToLetter(reste)}`;\n if (quotient > 1 && reste === 0) numberToLetter = `${convertNumberToLetter(quotient)} mille`;\n if (quotient > 1 && reste !== 0) numberToLetter = `${convertNumberToLetter(quotient)} mille ${convertNumberToLetter(reste)}`;\n break;\n case 6: quotient = Math.floor(nb / 1000);\n reste = nb - quotient * 1000;\n if (quotient === 1 && reste === 0) numberToLetter = 'mille';\n if (quotient === 1 && reste !== 0) numberToLetter = `${'mille '}${convertNumberToLetter(reste)}`;\n if (quotient > 1 && reste === 0) numberToLetter = `${convertNumberToLetter(quotient)} mille`;\n if (quotient > 1 && reste !== 0) numberToLetter = `${convertNumberToLetter(quotient)} mille ${convertNumberToLetter(reste)}`;\n break;\n case 7: quotient = Math.floor(nb / 1000000);\n reste = nb % 1000000;\n if (quotient === 1 && reste === 0) numberToLetter = 'un million';\n if (quotient === 1 && reste !== 0) numberToLetter = `${'un million '}${convertNumberToLetter(reste)}`;\n if (quotient > 1 && reste === 0) numberToLetter = `${convertNumberToLetter(quotient)} millions`;\n if (quotient > 1 && reste !== 0) numberToLetter = `${convertNumberToLetter(quotient)} millions ${convertNumberToLetter(reste)}`;\n break;\n case 8: quotient = Math.floor(nb / 1000000);\n reste = nb % 1000000;\n if (quotient === 1 && reste === 0) numberToLetter = 'un million';\n if (quotient === 1 && reste !== 0) numberToLetter = `${'un million '}${convertNumberToLetter(reste)}`;\n if (quotient > 1 && reste === 0) numberToLetter = `${convertNumberToLetter(quotient)} millions`;\n if (quotient > 1 && reste !== 0) numberToLetter = `${convertNumberToLetter(quotient)} millions ${convertNumberToLetter(reste)}`;\n break;\n case 9: quotient = Math.floor(nb / 1000000);\n reste = nb % 1000000;\n if (quotient === 1 && reste === 0) numberToLetter = 'un million';\n if (quotient === 1 && reste !== 0) numberToLetter = `${'un million '}${convertNumberToLetter(reste)}`;\n if (quotient > 1 && reste === 0) numberToLetter = `${convertNumberToLetter(quotient)} millions`;\n if (quotient > 1 && reste !== 0) numberToLetter = `${convertNumberToLetter(quotient)} millions ${convertNumberToLetter(reste)}`;\n break;\n case 10: quotient = Math.floor(nb / 1000000000);\n reste = nb - quotient * 1000000000;\n if (quotient === 1 && reste === 0) numberToLetter = 'un milliard';\n if (quotient === 1 && reste !== 0) numberToLetter = `${'un milliard '}${convertNumberToLetter(reste)}`;\n if (quotient > 1 && reste === 0) numberToLetter = `${convertNumberToLetter(quotient)} milliards`;\n if (quotient > 1 && reste !== 0) numberToLetter = `${convertNumberToLetter(quotient)} milliards ${convertNumberToLetter(reste)}`;\n break;\n case 11: quotient = Math.floor(nb / 1000000000);\n reste = nb - quotient * 1000000000;\n if (quotient === 1 && reste === 0) numberToLetter = 'un milliard';\n if (quotient === 1 && reste !== 0) numberToLetter = `${'un milliard '}${convertNumberToLetter(reste)}`;\n if (quotient > 1 && reste === 0) numberToLetter = `${convertNumberToLetter(quotient)} milliards`;\n if (quotient > 1 && reste !== 0) numberToLetter = `${convertNumberToLetter(quotient)} milliards ${convertNumberToLetter(reste)}`;\n break;\n case 12: quotient = Math.floor(nb / 1000000000);\n reste = nb - quotient * 1000000000;\n if (quotient === 1 && reste === 0) numberToLetter = 'un milliard';\n if (quotient === 1 && reste !== 0) numberToLetter = `${'un milliard '}${convertNumberToLetter(reste)}`;\n if (quotient > 1 && reste === 0) numberToLetter = `${convertNumberToLetter(quotient)} milliards`;\n if (quotient > 1 && reste !== 0) numberToLetter = `${convertNumberToLetter(quotient)} milliards ${convertNumberToLetter(reste)}`;\n break;\n case 13: quotient = Math.floor(nb / 1000000000000);\n reste = nb - quotient * 1000000000000;\n if (quotient === 1 && reste === 0) numberToLetter = 'un billion';\n if (quotient === 1 && reste !== 0) numberToLetter = `${'un billion '}${convertNumberToLetter(reste)}`;\n if (quotient > 1 && reste === 0) numberToLetter = `${convertNumberToLetter(quotient)} billions`;\n if (quotient > 1 && reste !== 0) numberToLetter = `${convertNumberToLetter(quotient)} billions ${convertNumberToLetter(reste)}`;\n break;\n case 14: quotient = Math.floor(nb / 1000000000000);\n reste = nb - quotient * 1000000000000;\n if (quotient === 1 && reste === 0) numberToLetter = 'un billion';\n if (quotient === 1 && reste !== 0) numberToLetter = `${'un billion '}${convertNumberToLetter(reste)}`;\n if (quotient > 1 && reste === 0) numberToLetter = `${convertNumberToLetter(quotient)} billions`;\n if (quotient > 1 && reste !== 0) numberToLetter = `${convertNumberToLetter(quotient)} billions ${convertNumberToLetter(reste)}`;\n break;\n case 15: quotient = Math.floor(nb / 1000000000000);\n reste = nb - quotient * 1000000000000;\n if (quotient === 1 && reste === 0) numberToLetter = 'un billion';\n if (quotient === 1 && reste !== 0) numberToLetter = `${'un billion '}${convertNumberToLetter(reste)}`;\n if (quotient > 1 && reste === 0) numberToLetter = `${convertNumberToLetter(quotient)} billions`;\n if (quotient > 1 && reste !== 0) numberToLetter = `${convertNumberToLetter(quotient)} billions ${convertNumberToLetter(reste)}`;\n break;\n default: numberToLetter = getUnite(nb); break;\n } // fin switch\n /* respect de l'accord de quatre-vingt */\n if (numberToLetter.substr(numberToLetter.length - 'quatre-vingt'.length, 'quatre-vingt'.length) === 'quatre-vingt') numberToLetter += 's';\n\n return numberToLetter;\n}"],"mappings":"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"}
1
+ {"version":3,"file":"amount.js","names":["integerToFormattedAmountString","exports","integerToFormattedAmountObject","convertNumberToLetter","_Util","require","value","abs","Math","integer","trunc","cents","round","max","integerWithMask","split","reduceRight","acc","char","i","length","trim","options","thousandSeparator","result","sign","MathematicalSign","PLUS","LESS","EQUAL","integerValue","centValue","Object","assign","formattedValue","unites","dizaines","groupes","convertirGroupeEnLettres","groupe","groupeEnLettres","centaines","floor","dizainesEtUnites","unite","dizaine","slice","uniteTexte","convertirNombreEntierEnLettres","ent","entier","resultat","groupeIndex","includes","convertirNombreDecimalEnLettres","decimal","decimalArrondi","nombre","partieEntiere","partieDecimale"],"sources":["../../ts/utils/amount.ts"],"sourcesContent":["import { MathematicalSign } from '../types/Enum/Util';\nimport { FormattedAmount } from '../types/Interface/api/amount/FormattedAmount';\n\nexport function integerToFormattedAmountString(value: number): string {\n const abs = Math.abs(value / 100);\n let integer = Math.trunc(abs);\n let cents = Math.round(abs * 100 - integer * 100);\n\n while (cents >= 100) {\n cents = Math.max(0, cents - 100);\n integer += 1;\n }\n\n const integerWithMask = `${integer}`.split('').reduceRight((acc, char, i, { length }) => `${char}${(length - (i + 1)) % 3 === 0 ? ' ' : ''}${acc}`, '').trim();\n return `${value < 0 ? '- ' : ''}${integerWithMask},${cents < 10 ? '0' : ''}${cents}`;\n}\n\nexport function integerToFormattedAmountObject(\n value: number,\n options: {\n thousandSeparator?: string;\n } = {\n thousandSeparator: ' ',\n },\n): FormattedAmount {\n const { thousandSeparator } = options;\n const abs = Math.abs(value / 100);\n let integer = Math.trunc(abs);\n let cents = Math.round(abs * 100 - integer * 100);\n\n while (cents >= 100) {\n cents = Math.max(0, cents - 100);\n integer += 1;\n }\n\n const result = {\n value,\n sign: value > 0 ? MathematicalSign.PLUS : value < 0 ? MathematicalSign.LESS : MathematicalSign.EQUAL,\n integerValue: `${integer}`\n .split('')\n .reduceRight((acc, char, i, { length }) => `${char}${(length - (i + 1)) % 3 === 0 ? thousandSeparator : ''}${acc}`, '')\n .trim(),\n centValue: `${cents < 10 ? '0' : ''}${cents}`,\n };\n\n return {\n ...result,\n formattedValue: `${result.sign !== MathematicalSign.EQUAL ? `${result.sign} ` : ''}${result.integerValue},${result.centValue}`,\n };\n}\n\n/**\n * Convertit les nombres à virgule de 0 à 100 000 000 (100 millions) *\n * @param nombre\n * @returns {string}\n */\nconst unites: string[] = [\n '', 'un', 'deux', 'trois', 'quatre', 'cinq', 'six', 'sept', 'huit', 'neuf', 'dix',\n 'onze', 'douze', 'treize', 'quatorze', 'quinze', 'seize', 'dix-sept', 'dix-huit', 'dix-neuf',\n];\n\nconst dizaines: string[] = [\n '', '', 'vingt', 'trente', 'quarante', 'cinquante', 'soixante', 'soixante',\n 'quatre-vingt', 'quatre-vingt',\n];\n\nconst groupes: string[] = ['', 'mille', 'million'];\n\nfunction convertirGroupeEnLettres(groupe: number): string {\n let groupeEnLettres = '';\n\n const centaines = Math.floor(groupe / 100);\n const dizainesEtUnites = groupe % 100;\n\n if (centaines > 0) {\n groupeEnLettres += `${unites[centaines] === 'un' ? '' : unites[centaines]} cent `;\n }\n\n if (dizainesEtUnites > 0) {\n if (dizainesEtUnites <= 19) {\n groupeEnLettres += unites[dizainesEtUnites];\n } else {\n const unite = dizainesEtUnites % 10;\n const dizaine = Math.floor(dizainesEtUnites / 10);\n groupeEnLettres += dizaines[dizaine];\n\n if (unite > 0) {\n if (dizaine === 7 || dizaine === 9) {\n /* const dizaineTexte = */dizaines[dizaine].slice(0, -1);\n const uniteTexte = unites[unite];\n groupeEnLettres += `-${uniteTexte}`;\n } else {\n const uniteTexte = unites[unite];\n groupeEnLettres += `-${uniteTexte}`;\n }\n }\n }\n }\n\n return groupeEnLettres.trim();\n}\nfunction convertirNombreEntierEnLettres(ent: number): string {\n let entier = ent;\n if (entier === 0) {\n return 'zéro';\n }\n\n let resultat = '';\n\n let groupeIndex = 0;\n while (entier > 0) {\n const groupe = entier % 1000;\n const groupeEnLettres = convertirGroupeEnLettres(groupe);\n\n if (groupeEnLettres !== '') {\n resultat = `${groupeEnLettres === 'un' && ['mille', 'cent'].includes(groupes[groupeIndex]) ? '' : groupeEnLettres} ${groupes[groupeIndex]}${groupeIndex === 2 && groupeEnLettres !== 'un' ? 's' : ''} ${resultat}`;\n }\n\n entier = Math.floor(entier / 1000);\n groupeIndex += 1;\n }\n\n return resultat.trim();\n}\nfunction convertirNombreDecimalEnLettres(decimal: number): string {\n const decimalArrondi = Math.round(decimal * 100);\n return `virgule ${convertirNombreEntierEnLettres(decimalArrondi)}`;\n}\nexport function convertNumberToLetter(nombre: number): string {\n const partieEntiere = Math.floor(nombre);\n const partieDecimale = nombre - partieEntiere;\n\n let resultat = '';\n\n if (partieEntiere === 0) {\n resultat = 'zéro';\n } else {\n resultat = convertirNombreEntierEnLettres(partieEntiere);\n }\n\n if (partieDecimale > 0) {\n resultat += ` ${convertirNombreDecimalEnLettres(partieDecimale)}`;\n }\n\n return resultat;\n}"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@silexpert/core",
3
- "version": "1.1.52",
3
+ "version": "1.1.54",
4
4
  "description": "Silex Core perform HTTP Request and object binding. Silex core helps developers to retrieve and return formatted object",
5
5
  "homepage": "https://gitlab.compta-clementine.fr/dev/silex-api",
6
6
  "main": "js/index.js",
@@ -0,0 +1,7 @@
1
+ import { Resource } from '../Resource';
2
+
3
+ export class Fusion extends Resource {
4
+ async fusion(idSocietySource: number, idSocietyTarget: number) {
5
+ return this.axios.$post('/fusion', { idSocietySource, idSocietyTarget });
6
+ }
7
+ }
@@ -0,0 +1,16 @@
1
+ import { IVisualizedInformation, QuerySocietyVisualizedInformation, UpdateOrCreateVisualizedInformation } from '../../types';
2
+ import { Resource } from '../Resource';
3
+
4
+ export class VisualizedInformation extends Resource {
5
+ get(idSociety: number, params: QuerySocietyVisualizedInformation): Promise<IVisualizedInformation> {
6
+ return this.axios.$get(`societies/${idSociety}/visualized-informations`, { params });
7
+ }
8
+
9
+ getAll(idSociety: number): Promise<IVisualizedInformation[]> {
10
+ return this.axios.$get(`societies/${idSociety}/all-visualized-informations`);
11
+ }
12
+
13
+ updateOrCreate(idSociety: number, payload: UpdateOrCreateVisualizedInformation): Promise<IVisualizedInformation> {
14
+ return this.axios.$post(`societies/${idSociety}/visualized-informations`, payload);
15
+ }
16
+ }
@@ -128,6 +128,8 @@ import { CashAndExpense } from './resources/CashAndExpense';
128
128
  import { Archive } from './resources/Archive';
129
129
  import { AccountsSector } from './resources/AccountsSectors';
130
130
  import { BusinessSector } from './resources/BusinessSector';
131
+ import { VisualizedInformation } from './resources/VisualizedInformation';
132
+ import { Fusion } from './resources/Fusion';
131
133
 
132
134
  export const resources = {
133
135
  simulation: Simulation,
@@ -260,4 +262,6 @@ export const resources = {
260
262
  archive: Archive,
261
263
  accountsSector: AccountsSector,
262
264
  businessSector: BusinessSector,
265
+ visualizedInformation: VisualizedInformation,
266
+ fusion: Fusion,
263
267
  };
@@ -169,6 +169,37 @@ export const BrandClementine = [
169
169
  email: 'facturation@compta-clementine.fr',
170
170
  },
171
171
  },
172
+ {
173
+ idTypeBrand: 4,
174
+ name: 'Statuts-Express',
175
+ urlApp: 'https://statuts-express.fr',
176
+ urlApi1: 'https://api.compta-clementine.fr',
177
+ urlApi2: 'https://api-next.compta-clementine.fr',
178
+ bank: {
179
+ IBAN: 'FR7616106840138646838239863',
180
+ BIC: 'AGRIFRPP861',
181
+ Name: 'Expertise Choix B',
182
+ Id: 'FR91ZZZ617135',
183
+ },
184
+ colors: {
185
+ primary: '#D8192D',
186
+ },
187
+ internalInvoicing: {
188
+ statut: 'SAS',
189
+ name: 'EXPERTISE CHOIX B',
190
+ address: '9, avenue du Rhin',
191
+ zipCode: '54520',
192
+ city: 'LAXOU',
193
+ country: 'FRANCE',
194
+ montantCapital: '500 000',
195
+ siret: '752566687',
196
+ ape: '6920Z',
197
+ rcs: '752 566 687',
198
+ phone: '03 83 93 14 14',
199
+ vatIntracom: 'FR47752566687',
200
+ email: 'facturation@compta-clementine.fr',
201
+ },
202
+ },
172
203
  {
173
204
  idTypeBrand: 5,
174
205
  name: 'Kandbaz',
@@ -2,4 +2,22 @@ export enum FiscalRegime {
2
2
  RS = 1,
3
3
  RN = 2,
4
4
  NA = 3,
5
- }
5
+ }
6
+
7
+ export const FiscalRegimeList: { label: string; id: number; designation: string }[] = [
8
+ {
9
+ id: FiscalRegime.RS,
10
+ label: 'RS',
11
+ designation: 'RS - Régime simplifié',
12
+ },
13
+ {
14
+ id: FiscalRegime.RN,
15
+ label: 'RN',
16
+ designation: 'RN - Régime normal',
17
+ },
18
+ {
19
+ id: FiscalRegime.NA,
20
+ label: 'N/A',
21
+ designation: 'N/A - Aucun',
22
+ },
23
+ ];
@@ -1,4 +1,17 @@
1
1
  export enum ProfitsType {
2
2
  BIC = 1,
3
3
  BNC = 2,
4
- }
4
+ }
5
+
6
+ export const ProfitsTypeList: { label: string; id: number; designation: string }[] = [
7
+ {
8
+ id: ProfitsType.BIC,
9
+ label: 'BIC',
10
+ designation: 'BIC - Bénéfices industriels et commerciaux',
11
+ },
12
+ {
13
+ id: ProfitsType.BNC,
14
+ label: 'BNC',
15
+ designation: 'BNC - Bénéfices non commerciaux',
16
+ },
17
+ ];
@@ -1,22 +1,23 @@
1
- import { List } from '../Interface/enum/Util';
2
-
3
1
  export enum TaxSystem {
4
2
  IS = 1,
5
3
  IR = 2,
6
4
  NA = 3,
7
5
  }
8
6
 
9
- export const TaxSystemList: List = [
7
+ export const TaxSystemList: { label: string; id: number; designation: string }[] = [
10
8
  {
11
9
  id: TaxSystem.IS,
12
10
  label: 'IS',
11
+ designation: 'IS - Impôt sur les sociétés',
13
12
  },
14
13
  {
15
14
  id: TaxSystem.IR,
16
15
  label: 'IR',
16
+ designation: 'IR - Impôt sur le Revenu',
17
17
  },
18
18
  {
19
19
  id: TaxSystem.NA,
20
20
  label: 'N/A',
21
+ designation: 'N/A - Aucun',
21
22
  },
22
- ];
23
+ ];
@@ -0,0 +1,4 @@
1
+ export enum VisualizedInformationState {
2
+ CANCELED = 0,
3
+ APPROVED = 1,
4
+ }
@@ -0,0 +1,12 @@
1
+ import { IsNumber } from 'class-validator';
2
+ import { ApiProperty } from '../../../../utils';
3
+
4
+ export class FusionSocieties {
5
+ @ApiProperty()
6
+ @IsNumber()
7
+ idSocietySource: number;
8
+
9
+ @ApiProperty()
10
+ @IsNumber()
11
+ idSocietyTarget: number;
12
+ }
@@ -0,0 +1,14 @@
1
+ import { IsNumber, IsOptional, IsString } from 'class-validator';
2
+ import { ApiProperty, ApiPropertyOptional } from '../../../../utils';
3
+ import { VisualizedInformationState } from '../../../Enum/VisualizedInformation';
4
+
5
+ export class QuerySocietyVisualizedInformation {
6
+ @ApiProperty()
7
+ @IsString()
8
+ key: string;
9
+
10
+ @ApiPropertyOptional()
11
+ @IsNumber()
12
+ @IsOptional()
13
+ state: VisualizedInformationState;
14
+ }
@@ -0,0 +1,13 @@
1
+ import { IsNumber, IsString } from 'class-validator';
2
+ import { ApiProperty } from '../../../../utils';
3
+ import { VisualizedInformationState } from '../../../Enum/VisualizedInformation';
4
+
5
+ export class UpdateOrCreateVisualizedInformation {
6
+ @ApiProperty()
7
+ @IsString()
8
+ key: string;
9
+
10
+ @ApiProperty()
11
+ @IsNumber()
12
+ state: VisualizedInformationState;
13
+ }
@@ -209,6 +209,7 @@ export interface ISociety {
209
209
  sms?: ISms[];
210
210
  users?: IUser[];
211
211
  userPermission?: IUserSocietyPermission;
212
+ usersPermissions?: IUserSocietyPermission[];
212
213
  regulates?: IRegulate[];
213
214
  brandType?: IBrandType;
214
215
  partneredAccountantCompaniesServices: IPartneredAccountantCompanyService[];
@@ -0,0 +1,14 @@
1
+ import { VisualizedInformationState } from '../../Enum/VisualizedInformation';
2
+ import { ISociety } from './ISociety';
3
+
4
+ export interface IVisualizedInformation {
5
+ id?: number;
6
+ key: string;
7
+ state: VisualizedInformationState;
8
+ idSociety: number;
9
+ createdAt?: Date | null;
10
+ updatedAt?: Date | null;
11
+
12
+ // Associations
13
+ society?: ISociety;
14
+ }