@silexpert/core 1.1.344 → 1.1.347
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/types/Enum/TimeSlot.d.ts +4 -2
- package/dist/cjs/types/Enum/TimeSlot.d.ts.map +1 -1
- package/dist/cjs/types/Enum/TimeSlot.js +16 -27
- package/dist/cjs/types/Enum/TimeSlot.js.map +1 -1
- package/dist/cjs/utils/payment.d.ts.map +1 -1
- package/dist/cjs/utils/payment.js +5 -1
- package/dist/cjs/utils/payment.js.map +1 -1
- package/dist/cjs/utils/prestation.js +1 -1
- package/dist/cjs/utils/prestation.js.map +1 -1
- package/dist/mjs/types/Enum/TimeSlot.d.ts +4 -2
- package/dist/mjs/types/Enum/TimeSlot.d.ts.map +1 -1
- package/dist/mjs/types/Enum/TimeSlot.js +10 -21
- package/dist/mjs/types/Enum/TimeSlot.js.map +1 -1
- package/dist/mjs/utils/payment.d.ts.map +1 -1
- package/dist/mjs/utils/payment.js +5 -1
- package/dist/mjs/utils/payment.js.map +1 -1
- package/dist/mjs/utils/prestation.js +1 -1
- package/dist/mjs/utils/prestation.js.map +1 -1
- package/package.json +1 -1
- package/ts/types/Enum/TimeSlot.ts +14 -22
- package/ts/utils/payment.ts +6 -1
- package/ts/utils/prestation.ts +1 -1
|
@@ -15,7 +15,6 @@ export declare enum TimeSlot {
|
|
|
15
15
|
CLOSE_SOCIETY = 14,
|
|
16
16
|
TAX_ADVICE_OR_COMPLEX_LEGAL_ARRANGEMENTS = 15,
|
|
17
17
|
FIX_UNPAID = 16,
|
|
18
|
-
POST_BILAN = 17,
|
|
19
18
|
ANNUAL_FINANCIAL_STATEMENTS = 18,
|
|
20
19
|
MANAGER_REVENUE = 19,
|
|
21
20
|
SPECIALISED_FISCAL_QUESTIONS = 20,
|
|
@@ -28,13 +27,16 @@ export declare enum TimeSlotCategory {
|
|
|
28
27
|
BILLING = 3,
|
|
29
28
|
SPECIALISED = 4
|
|
30
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* @param {number[]} idRole if idRole not set, return all users except customers
|
|
32
|
+
*/
|
|
31
33
|
export type TimeSlotDetailType = {
|
|
32
34
|
id: number;
|
|
33
35
|
name: string;
|
|
34
36
|
internalName: string;
|
|
35
37
|
category?: string;
|
|
36
38
|
duration: number;
|
|
37
|
-
idRole
|
|
39
|
+
idRole?: number[];
|
|
38
40
|
forWholeService?: boolean;
|
|
39
41
|
idRoleExcluded?: number[];
|
|
40
42
|
idTimeCounterType: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeSlot.d.ts","sourceRoot":"","sources":["../../../../ts/types/Enum/TimeSlot.ts"],"names":[],"mappings":"AAGA,oBAAY,QAAQ;IAClB,UAAU,IAAI;IACd,gBAAgB,IAAI;IACpB,KAAK,IAAI;IACT,GAAG,IAAI;IACP,WAAW,IAAI;IACf,mBAAmB,IAAI;IACvB,cAAc,IAAI;IAClB,OAAO,IAAI;IACX,KAAK,IAAI;IACT,WAAW,KAAK;IAChB,8BAA8B,KAAK;IACnC,sDAAsD,KAAK;IAC3D,YAAY,KAAK;IACjB,aAAa,KAAK;IAClB,wCAAwC,KAAK;IAC7C,UAAU,KAAK;IACf,
|
|
1
|
+
{"version":3,"file":"TimeSlot.d.ts","sourceRoot":"","sources":["../../../../ts/types/Enum/TimeSlot.ts"],"names":[],"mappings":"AAGA,oBAAY,QAAQ;IAClB,UAAU,IAAI;IACd,gBAAgB,IAAI;IACpB,KAAK,IAAI;IACT,GAAG,IAAI;IACP,WAAW,IAAI;IACf,mBAAmB,IAAI;IACvB,cAAc,IAAI;IAClB,OAAO,IAAI;IACX,KAAK,IAAI;IACT,WAAW,KAAK;IAChB,8BAA8B,KAAK;IACnC,sDAAsD,KAAK;IAC3D,YAAY,KAAK;IACjB,aAAa,KAAK;IAClB,wCAAwC,KAAK;IAC7C,UAAU,KAAK;IACf,2BAA2B,KAAK;IAChC,eAAe,KAAK;IACpB,4BAA4B,KAAK;IACjC,kBAAkB,KAAK;IACvB,gBAAgB,KAAK;CAEtB;AACD,oBAAY,gBAAgB;IAC1B,UAAU,IAAI;IACd,OAAO,IAAI;IACX,OAAO,IAAI;IACX,WAAW,IAAI;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AACF,MAAM,MAAM,0BAA0B,GAAG;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAC,0BAA0B,EAsB7D,CAAC;AAEF,eAAO,MAAM,cAAc,EAAC,kBAAkB,EA8M7C,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q
|
|
2
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.TimeSlotDetail = exports.TimeSlotCategoryDetail = exports.TimeSlotCategory = exports.TimeSlot = void 0;
|
|
5
5
|
const Role_1 = require("./Role");
|
|
@@ -22,7 +22,6 @@ var TimeSlot;
|
|
|
22
22
|
TimeSlot[TimeSlot["CLOSE_SOCIETY"] = 14] = "CLOSE_SOCIETY";
|
|
23
23
|
TimeSlot[TimeSlot["TAX_ADVICE_OR_COMPLEX_LEGAL_ARRANGEMENTS"] = 15] = "TAX_ADVICE_OR_COMPLEX_LEGAL_ARRANGEMENTS";
|
|
24
24
|
TimeSlot[TimeSlot["FIX_UNPAID"] = 16] = "FIX_UNPAID";
|
|
25
|
-
TimeSlot[TimeSlot["POST_BILAN"] = 17] = "POST_BILAN";
|
|
26
25
|
TimeSlot[TimeSlot["ANNUAL_FINANCIAL_STATEMENTS"] = 18] = "ANNUAL_FINANCIAL_STATEMENTS";
|
|
27
26
|
TimeSlot[TimeSlot["MANAGER_REVENUE"] = 19] = "MANAGER_REVENUE";
|
|
28
27
|
TimeSlot[TimeSlot["SPECIALISED_FISCAL_QUESTIONS"] = 20] = "SPECIALISED_FISCAL_QUESTIONS";
|
|
@@ -83,7 +82,7 @@ exports.TimeSlotDetail = [
|
|
|
83
82
|
internalName: 'Rdv bilan',
|
|
84
83
|
category: (_a = exports.TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.ACCOUNTING)) === null || _a === void 0 ? void 0 : _a.name,
|
|
85
84
|
duration: 30,
|
|
86
|
-
idRole: [Role_1.Role.ACCOUNTANT
|
|
85
|
+
idRole: [Role_1.Role.ACCOUNTANT],
|
|
87
86
|
forWholeService: false,
|
|
88
87
|
idTimeCounterType: TimeCounterType_1.TimeCounterType.CALENDLY.id,
|
|
89
88
|
},
|
|
@@ -93,7 +92,7 @@ exports.TimeSlotDetail = [
|
|
|
93
92
|
internalName: 'Rdv TVA',
|
|
94
93
|
category: (_b = exports.TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.ACCOUNTING)) === null || _b === void 0 ? void 0 : _b.name,
|
|
95
94
|
duration: 30,
|
|
96
|
-
idRole: [Role_1.Role.ACCOUNTANT
|
|
95
|
+
idRole: [Role_1.Role.ACCOUNTANT],
|
|
97
96
|
idRoleExcluded: [Role_1.Role.MANAGER],
|
|
98
97
|
forWholeService: false,
|
|
99
98
|
idTimeCounterType: TimeCounterType_1.TimeCounterType.CALENDLY.id,
|
|
@@ -121,7 +120,7 @@ exports.TimeSlotDetail = [
|
|
|
121
120
|
internalName: 'Rdv Conseils',
|
|
122
121
|
category: (_c = exports.TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.ACCOUNTING)) === null || _c === void 0 ? void 0 : _c.name,
|
|
123
122
|
duration: 30,
|
|
124
|
-
idRole: [Role_1.Role.ACCOUNTANT
|
|
123
|
+
idRole: [Role_1.Role.ACCOUNTANT],
|
|
125
124
|
idRoleExcluded: [Role_1.Role.MANAGER],
|
|
126
125
|
forWholeService: false,
|
|
127
126
|
idTimeCounterType: TimeCounterType_1.TimeCounterType.CALENDLY.id,
|
|
@@ -150,7 +149,7 @@ exports.TimeSlotDetail = [
|
|
|
150
149
|
name: 'Rdv',
|
|
151
150
|
internalName: 'Rdv',
|
|
152
151
|
duration: 20,
|
|
153
|
-
idRole: [
|
|
152
|
+
// idRole: [Role.ACCOUNTANT, Role.COMMERCIAL, Role.SOCIAL, Role.JURIDIC, Role.EXPERT_ACCOUNTANT, Role.FACTURATION, Role.LITIGE, Role.TECHNICAL_ADVISOR],
|
|
154
153
|
forWholeService: false,
|
|
155
154
|
idTimeCounterType: TimeCounterType_1.TimeCounterType.CALENDLY.id,
|
|
156
155
|
},
|
|
@@ -201,7 +200,7 @@ exports.TimeSlotDetail = [
|
|
|
201
200
|
category: (_j = exports.TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.JURIDIC)) === null || _j === void 0 ? void 0 : _j.name,
|
|
202
201
|
duration: 60,
|
|
203
202
|
idRole: [Role_1.Role.JURIDIC, Role_1.Role.DIRECTOR],
|
|
204
|
-
forWholeService:
|
|
203
|
+
forWholeService: false,
|
|
205
204
|
idTimeCounterType: TimeCounterType_1.TimeCounterType.CALENDLY.id,
|
|
206
205
|
},
|
|
207
206
|
{
|
|
@@ -214,64 +213,54 @@ exports.TimeSlotDetail = [
|
|
|
214
213
|
forWholeService: true,
|
|
215
214
|
idTimeCounterType: TimeCounterType_1.TimeCounterType.CALENDLY.id,
|
|
216
215
|
},
|
|
217
|
-
{
|
|
218
|
-
id: TimeSlot.POST_BILAN,
|
|
219
|
-
name: 'Prise de rendez-vous rendus bilan',
|
|
220
|
-
internalName: 'Rdv rendus bilan',
|
|
221
|
-
category: (_l = exports.TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.ACCOUNTING)) === null || _l === void 0 ? void 0 : _l.name,
|
|
222
|
-
duration: 30,
|
|
223
|
-
idRole: [Role_1.Role.TECHNICAL_ADVISOR],
|
|
224
|
-
forWholeService: false,
|
|
225
|
-
idTimeCounterType: TimeCounterType_1.TimeCounterType.CALENDLY.id,
|
|
226
|
-
},
|
|
227
216
|
{
|
|
228
217
|
id: TimeSlot.ANNUAL_FINANCIAL_STATEMENTS,
|
|
229
218
|
name: 'Lecture et explication des comptes annuels',
|
|
230
219
|
internalName: 'Conseils spécialisés',
|
|
231
|
-
category: (
|
|
220
|
+
category: (_l = exports.TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.SPECIALISED)) === null || _l === void 0 ? void 0 : _l.name,
|
|
232
221
|
duration: 30,
|
|
233
222
|
idRole: [Role_1.Role.TECHNICAL_ADVISOR],
|
|
234
|
-
forWholeService:
|
|
223
|
+
forWholeService: true,
|
|
235
224
|
idTimeCounterType: TimeCounterType_1.TimeCounterType.CALENDLY.id,
|
|
236
225
|
},
|
|
237
226
|
{
|
|
238
227
|
id: TimeSlot.MANAGER_REVENUE,
|
|
239
228
|
name: 'Rémunération du dirigeant & dividendes',
|
|
240
229
|
internalName: 'Conseils spécialisés',
|
|
241
|
-
category: (
|
|
230
|
+
category: (_m = exports.TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.SPECIALISED)) === null || _m === void 0 ? void 0 : _m.name,
|
|
242
231
|
duration: 30,
|
|
243
232
|
idRole: [Role_1.Role.TECHNICAL_ADVISOR],
|
|
244
|
-
forWholeService:
|
|
233
|
+
forWholeService: true,
|
|
245
234
|
idTimeCounterType: TimeCounterType_1.TimeCounterType.CALENDLY.id,
|
|
246
235
|
},
|
|
247
236
|
{
|
|
248
237
|
id: TimeSlot.SPECIALISED_FISCAL_QUESTIONS,
|
|
249
238
|
name: 'Questions fiscales spécifiques (crédits d\'impôts, ZFANG, autres statuts, etc.)',
|
|
250
239
|
internalName: 'Conseils spécialisés',
|
|
251
|
-
category: (
|
|
240
|
+
category: (_o = exports.TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.SPECIALISED)) === null || _o === void 0 ? void 0 : _o.name,
|
|
252
241
|
duration: 30,
|
|
253
242
|
idRole: [Role_1.Role.TECHNICAL_ADVISOR],
|
|
254
|
-
forWholeService:
|
|
243
|
+
forWholeService: true,
|
|
255
244
|
idTimeCounterType: TimeCounterType_1.TimeCounterType.CALENDLY.id,
|
|
256
245
|
},
|
|
257
246
|
{
|
|
258
247
|
id: TimeSlot.VAT_TERRITORIALITY,
|
|
259
248
|
name: 'Territorialité de TVA',
|
|
260
249
|
internalName: 'Conseils spécialisés',
|
|
261
|
-
category: (
|
|
250
|
+
category: (_p = exports.TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.SPECIALISED)) === null || _p === void 0 ? void 0 : _p.name,
|
|
262
251
|
duration: 30,
|
|
263
252
|
idRole: [Role_1.Role.TECHNICAL_ADVISOR],
|
|
264
|
-
forWholeService:
|
|
253
|
+
forWholeService: true,
|
|
265
254
|
idTimeCounterType: TimeCounterType_1.TimeCounterType.CALENDLY.id,
|
|
266
255
|
},
|
|
267
256
|
{
|
|
268
257
|
id: TimeSlot.FINANCIAL_SOURCE,
|
|
269
258
|
name: 'Sources de financement',
|
|
270
259
|
internalName: 'Conseils spécialisés',
|
|
271
|
-
category: (
|
|
260
|
+
category: (_q = exports.TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.SPECIALISED)) === null || _q === void 0 ? void 0 : _q.name,
|
|
272
261
|
duration: 30,
|
|
273
262
|
idRole: [Role_1.Role.TECHNICAL_ADVISOR],
|
|
274
|
-
forWholeService:
|
|
263
|
+
forWholeService: true,
|
|
275
264
|
idTimeCounterType: TimeCounterType_1.TimeCounterType.CALENDLY.id,
|
|
276
265
|
},
|
|
277
266
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeSlot.js","sourceRoot":"","sources":["../../../../ts/types/Enum/TimeSlot.ts"],"names":[],"mappings":"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","sourcesContent":["import { Role } from './Role';\nimport { TimeCounterType } from './TimeCounterType';\n\nexport enum TimeSlot {\n ONBOARDING = 1,\n ONBOARDING_SHORT = 2,\n BILAN = 3,\n TVA = 4,\n TVA_MANAGER = 5,\n BALANCESHEET_OR_TIP = 6,\n ACCOUNTING_RDV = 7,\n BILLING = 8,\n SALES = 9,\n APPOINTMENT = 10,\n SUPPORTING_CREATION_OF_SOCIETY = 11,\n APPROVAL_FINANCIAL_STATEMENTS_AND_DISTRIBUTE_DIVIDENDS = 12,\n EDIT_SOCIETY = 13,\n CLOSE_SOCIETY = 14,\n TAX_ADVICE_OR_COMPLEX_LEGAL_ARRANGEMENTS = 15,\n FIX_UNPAID = 16,\n POST_BILAN = 17,\n ANNUAL_FINANCIAL_STATEMENTS = 18,\n MANAGER_REVENUE = 19,\n SPECIALISED_FISCAL_QUESTIONS = 20,\n VAT_TERRITORIALITY = 21,\n FINANCIAL_SOURCE = 22,\n\n}\nexport enum TimeSlotCategory {\n ACCOUNTING = 1,\n JURIDIC = 2,\n BILLING = 3,\n SPECIALISED = 4,\n}\n\nexport type TimeSlotDetailType = {\n id: number;\n name: string;\n internalName: string;\n category?: string,\n duration: number;\n idRole: number[];\n forWholeService?: boolean\n idRoleExcluded?: number[];\n idTimeCounterType: number;\n};\nexport type TimeSlotCategoryDetailType = {\n id: number;\n name: string;\n description: string;\n};\n\nexport const TimeSlotCategoryDetail:TimeSlotCategoryDetailType[] = [\n {\n id: TimeSlotCategory.ACCOUNTING,\n name: 'Comptable',\n description: 'Pour suivre l\\'avancement de votre bilan, vos déclarations de TVA ou pour toute question sur la vie de votre dossier, c\\'est par ici !',\n\n },\n {\n id: TimeSlotCategory.JURIDIC,\n name: 'Juridique',\n description: 'Si vous souhaitez ouvrir / modifier / fermer une entreprise ou pour tout besoin de montage juridique complexe, notre équipe est à votre disposition',\n },\n {\n id: TimeSlotCategory.BILLING,\n name: 'Facturation',\n description: 'Besoin d\\'échanger sur votre échéancier ou votre facturation (retards de paiement et autres) ? Prenez contact avec nous !',\n },\n {\n id: TimeSlotCategory.SPECIALISED,\n name: 'Conseils spécialisés',\n description: 'Vous souhaitez une explication de vos comptes annuels ? Vous avez des questions très pointues ou un besoin d\\'information spécifique ? Nous sommes là pour vous accompagner !',\n },\n];\n\nexport const TimeSlotDetail:TimeSlotDetailType[] = [\n {\n id: TimeSlot.ONBOARDING,\n name: 'OnBoarding',\n internalName: 'Rdv OnBoarding',\n duration: 45,\n idRole: [Role.ON_BOARDER],\n forWholeService: true,\n idTimeCounterType: TimeCounterType.ONBOARDING.id,\n },\n {\n id: TimeSlot.ONBOARDING_SHORT,\n name: 'OnBoarding',\n internalName: 'Rdv OnBoarding Court',\n duration: 45,\n idRole: [Role.ON_BOARDER],\n forWholeService: true,\n idTimeCounterType: TimeCounterType.ONBOARDING.id,\n },\n {\n id: TimeSlot.BILAN,\n name: 'Questions concernant mon bilan',\n internalName: 'Rdv bilan',\n category: TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.ACCOUNTING)?.name,\n duration: 30,\n idRole: [Role.ACCOUNTANT, Role.TECHNICAL_ADVISOR],\n forWholeService: false,\n idTimeCounterType: TimeCounterType.CALENDLY.id,\n },\n {\n id: TimeSlot.TVA,\n name: 'Questions concernant ma TVA',\n internalName: 'Rdv TVA',\n category: TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.ACCOUNTING)?.name,\n duration: 30,\n idRole:[Role.ACCOUNTANT, Role.TECHNICAL_ADVISOR],\n idRoleExcluded:[Role.MANAGER],\n forWholeService: false,\n idTimeCounterType: TimeCounterType.CALENDLY.id,\n },\n // {\n // id: TimeSlot.TVA_MANAGER,\n // name: 'Tva',\n // internalName: 'Tva Manager',\n // duration: 15,\n // idRole:[Role.ACCOUNTANT, Role.MANAGER],\n // forWholeService: false,\n // },\n // {\n // id: TimeSlot.BALANCESHEET_OR_TIP,\n // name: 'Bilan ou Conseil',\n // internalName: 'Bilan ou Conseil',\n // duration: 30,\n // idRole:[Role.ACCOUNTANT],\n // idRoleExcluded:[Role.MANAGER],\n // forWholeService: false,\n // },\n {\n id: TimeSlot.ACCOUNTING_RDV,\n name: 'Conseils',\n internalName: 'Rdv Conseils',\n category: TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.ACCOUNTING)?.name,\n duration: 30,\n idRole:[Role.ACCOUNTANT, Role.TECHNICAL_ADVISOR],\n idRoleExcluded:[Role.MANAGER],\n forWholeService: false,\n idTimeCounterType: TimeCounterType.CALENDLY.id,\n },\n {\n id: TimeSlot.BILLING,\n name: 'Questions concernant ma facturation',\n internalName: 'Rdv facturation',\n duration: 30,\n category: TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.BILLING)?.name,\n idRole:[Role.FACTURATION],\n forWholeService: true,\n idTimeCounterType: TimeCounterType.CALENDLY.id,\n },\n {\n id: TimeSlot.SALES,\n name: 'Rdv commercial',\n internalName: 'Rdv Commercial',\n duration: 20,\n idRole:[Role.COMMERCIAL],\n forWholeService: false,\n idTimeCounterType: TimeCounterType.CALENDLY.id,\n },\n {\n id: TimeSlot.APPOINTMENT, //TODO: à commenter ? remplacé par idType 7 ?\n name: 'Rdv',\n internalName: 'Rdv',\n duration: 20,\n idRole: [Role.ACCOUNTANT, Role.COMMERCIAL, Role.SOCIAL, Role.JURIDIC, Role.EXPERT_ACCOUNTANT, Role.FACTURATION, Role.LITIGE, Role.TECHNICAL_ADVISOR],\n forWholeService: false,\n idTimeCounterType: TimeCounterType.CALENDLY.id,\n },\n {\n id: TimeSlot.SUPPORTING_CREATION_OF_SOCIETY,\n name: 'Accompagnement pour la création de mon entreprise',\n internalName: 'Rdv création',\n category: TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.JURIDIC)?.name,\n duration: 30,\n idRole: [Role.JURIDIC],\n forWholeService: false,\n idTimeCounterType: TimeCounterType.CALENDLY.id,\n },\n {\n id: TimeSlot.APPROVAL_FINANCIAL_STATEMENTS_AND_DISTRIBUTE_DIVIDENDS,\n name: 'Approuver les comptes et/ou distribuer des dividendes',\n internalName: 'Rdv juridique',\n category: TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.JURIDIC)?.name,\n duration: 30,\n idRole: [Role.JURIDIC],\n forWholeService: false,\n idTimeCounterType: TimeCounterType.CALENDLY.id,\n },\n {\n id: TimeSlot.EDIT_SOCIETY,\n name: 'Modifier mon entreprise',\n internalName: 'Rdv juridique',\n category: TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.JURIDIC)?.name,\n duration: 30,\n idRole: [Role.JURIDIC],\n forWholeService: false,\n idTimeCounterType: TimeCounterType.CALENDLY.id,\n },\n {\n id: TimeSlot.CLOSE_SOCIETY,\n name: 'Fermer mon entreprise',\n internalName: 'Rdv juridique',\n category: TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.JURIDIC)?.name,\n duration: 30,\n idRole: [Role.JURIDIC],\n forWholeService: false,\n idTimeCounterType: TimeCounterType.CALENDLY.id,\n },\n {\n id: TimeSlot.TAX_ADVICE_OR_COMPLEX_LEGAL_ARRANGEMENTS,\n name: 'Conseils fiscaux ou montages juridiques complexes',\n internalName: 'Rdv juridique',\n category: TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.JURIDIC)?.name,\n duration: 60, \n idRole: [Role.JURIDIC, Role.DIRECTOR],\n forWholeService: true,\n idTimeCounterType: TimeCounterType.CALENDLY.id,\n },\n {\n id: TimeSlot.FIX_UNPAID,\n name: 'Régulariser un paiement',\n internalName: 'Rdv impayés',\n duration: 30,\n category: TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.BILLING)?.name,\n idRole:[Role.FACTURATION],\n forWholeService: true,\n idTimeCounterType: TimeCounterType.CALENDLY.id,\n },\n {\n id: TimeSlot.POST_BILAN,\n name: 'Prise de rendez-vous rendus bilan',\n internalName: 'Rdv rendus bilan',\n category: TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.ACCOUNTING)?.name,\n duration: 30,\n idRole: [Role.TECHNICAL_ADVISOR],\n forWholeService: false,\n idTimeCounterType: TimeCounterType.CALENDLY.id,\n },\n {\n id: TimeSlot.ANNUAL_FINANCIAL_STATEMENTS,\n name: 'Lecture et explication des comptes annuels',\n internalName: 'Conseils spécialisés',\n category: TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.SPECIALISED)?.name,\n duration: 30,\n idRole: [Role.TECHNICAL_ADVISOR],\n forWholeService: false,\n idTimeCounterType: TimeCounterType.CALENDLY.id,\n },\n {\n id: TimeSlot.MANAGER_REVENUE,\n name: 'Rémunération du dirigeant & dividendes',\n internalName: 'Conseils spécialisés',\n category: TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.SPECIALISED)?.name,\n duration: 30,\n idRole: [Role.TECHNICAL_ADVISOR],\n forWholeService: false,\n idTimeCounterType: TimeCounterType.CALENDLY.id,\n },\n {\n id: TimeSlot.SPECIALISED_FISCAL_QUESTIONS,\n name: 'Questions fiscales spécifiques (crédits d\\'impôts, ZFANG, autres statuts, etc.)',\n internalName: 'Conseils spécialisés',\n category: TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.SPECIALISED)?.name,\n duration: 30,\n idRole: [Role.TECHNICAL_ADVISOR],\n forWholeService: false,\n idTimeCounterType: TimeCounterType.CALENDLY.id,\n },\n {\n id: TimeSlot.VAT_TERRITORIALITY,\n name: 'Territorialité de TVA',\n internalName: 'Conseils spécialisés',\n category: TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.SPECIALISED)?.name,\n duration: 30,\n idRole: [Role.TECHNICAL_ADVISOR],\n forWholeService: false,\n idTimeCounterType: TimeCounterType.CALENDLY.id,\n },\n {\n id: TimeSlot.FINANCIAL_SOURCE,\n name: 'Sources de financement',\n internalName: 'Conseils spécialisés',\n category: TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.SPECIALISED)?.name,\n duration: 30,\n idRole: [Role.TECHNICAL_ADVISOR],\n forWholeService: false,\n idTimeCounterType: TimeCounterType.CALENDLY.id,\n },\n];"]}
|
|
1
|
+
{"version":3,"file":"TimeSlot.js","sourceRoot":"","sources":["../../../../ts/types/Enum/TimeSlot.ts"],"names":[],"mappings":"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","sourcesContent":["import { Role } from './Role';\nimport { TimeCounterType } from './TimeCounterType';\n\nexport enum TimeSlot {\n ONBOARDING = 1,\n ONBOARDING_SHORT = 2,\n BILAN = 3,\n TVA = 4,\n TVA_MANAGER = 5,\n BALANCESHEET_OR_TIP = 6,\n ACCOUNTING_RDV = 7,\n BILLING = 8,\n SALES = 9,\n APPOINTMENT = 10,\n SUPPORTING_CREATION_OF_SOCIETY = 11,\n APPROVAL_FINANCIAL_STATEMENTS_AND_DISTRIBUTE_DIVIDENDS = 12,\n EDIT_SOCIETY = 13,\n CLOSE_SOCIETY = 14,\n TAX_ADVICE_OR_COMPLEX_LEGAL_ARRANGEMENTS = 15,\n FIX_UNPAID = 16,\n ANNUAL_FINANCIAL_STATEMENTS = 18,\n MANAGER_REVENUE = 19,\n SPECIALISED_FISCAL_QUESTIONS = 20,\n VAT_TERRITORIALITY = 21,\n FINANCIAL_SOURCE = 22,\n\n}\nexport enum TimeSlotCategory {\n ACCOUNTING = 1,\n JURIDIC = 2,\n BILLING = 3,\n SPECIALISED = 4,\n}\n\n/**\n * @param {number[]} idRole if idRole not set, return all users except customers\n */\nexport type TimeSlotDetailType = {\n id: number;\n name: string;\n internalName: string;\n category?: string,\n duration: number;\n idRole?: number[];\n forWholeService?: boolean\n idRoleExcluded?: number[];\n idTimeCounterType: number;\n};\nexport type TimeSlotCategoryDetailType = {\n id: number;\n name: string;\n description: string;\n};\n\nexport const TimeSlotCategoryDetail:TimeSlotCategoryDetailType[] = [\n {\n id: TimeSlotCategory.ACCOUNTING,\n name: 'Comptable',\n description: 'Pour suivre l\\'avancement de votre bilan, vos déclarations de TVA ou pour toute question sur la vie de votre dossier, c\\'est par ici !',\n\n },\n {\n id: TimeSlotCategory.JURIDIC,\n name: 'Juridique',\n description: 'Si vous souhaitez ouvrir / modifier / fermer une entreprise ou pour tout besoin de montage juridique complexe, notre équipe est à votre disposition',\n },\n {\n id: TimeSlotCategory.BILLING,\n name: 'Facturation',\n description: 'Besoin d\\'échanger sur votre échéancier ou votre facturation (retards de paiement et autres) ? Prenez contact avec nous !',\n },\n {\n id: TimeSlotCategory.SPECIALISED,\n name: 'Conseils spécialisés',\n description: 'Vous souhaitez une explication de vos comptes annuels ? Vous avez des questions très pointues ou un besoin d\\'information spécifique ? Nous sommes là pour vous accompagner !',\n },\n];\n\nexport const TimeSlotDetail:TimeSlotDetailType[] = [\n {\n id: TimeSlot.ONBOARDING,\n name: 'OnBoarding',\n internalName: 'Rdv OnBoarding',\n duration: 45,\n idRole: [Role.ON_BOARDER],\n forWholeService: true,\n idTimeCounterType: TimeCounterType.ONBOARDING.id,\n },\n {\n id: TimeSlot.ONBOARDING_SHORT,\n name: 'OnBoarding',\n internalName: 'Rdv OnBoarding Court',\n duration: 45,\n idRole: [Role.ON_BOARDER],\n forWholeService: true,\n idTimeCounterType: TimeCounterType.ONBOARDING.id,\n },\n {\n id: TimeSlot.BILAN,\n name: 'Questions concernant mon bilan',\n internalName: 'Rdv bilan',\n category: TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.ACCOUNTING)?.name,\n duration: 30,\n idRole: [Role.ACCOUNTANT],\n forWholeService: false,\n idTimeCounterType: TimeCounterType.CALENDLY.id,\n },\n {\n id: TimeSlot.TVA,\n name: 'Questions concernant ma TVA',\n internalName: 'Rdv TVA',\n category: TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.ACCOUNTING)?.name,\n duration: 30,\n idRole:[Role.ACCOUNTANT],\n idRoleExcluded:[Role.MANAGER],\n forWholeService: false,\n idTimeCounterType: TimeCounterType.CALENDLY.id,\n },\n // {\n // id: TimeSlot.TVA_MANAGER,\n // name: 'Tva',\n // internalName: 'Tva Manager',\n // duration: 15,\n // idRole:[Role.ACCOUNTANT, Role.MANAGER],\n // forWholeService: false,\n // },\n // {\n // id: TimeSlot.BALANCESHEET_OR_TIP,\n // name: 'Bilan ou Conseil',\n // internalName: 'Bilan ou Conseil',\n // duration: 30,\n // idRole:[Role.ACCOUNTANT],\n // idRoleExcluded:[Role.MANAGER],\n // forWholeService: false,\n // },\n {\n id: TimeSlot.ACCOUNTING_RDV,\n name: 'Conseils',\n internalName: 'Rdv Conseils',\n category: TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.ACCOUNTING)?.name,\n duration: 30,\n idRole:[Role.ACCOUNTANT],\n idRoleExcluded:[Role.MANAGER],\n forWholeService: false,\n idTimeCounterType: TimeCounterType.CALENDLY.id,\n },\n {\n id: TimeSlot.BILLING,\n name: 'Questions concernant ma facturation',\n internalName: 'Rdv facturation',\n duration: 30,\n category: TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.BILLING)?.name,\n idRole:[Role.FACTURATION],\n forWholeService: true,\n idTimeCounterType: TimeCounterType.CALENDLY.id,\n },\n {\n id: TimeSlot.SALES,\n name: 'Rdv commercial',\n internalName: 'Rdv Commercial',\n duration: 20,\n idRole:[Role.COMMERCIAL],\n forWholeService: false,\n idTimeCounterType: TimeCounterType.CALENDLY.id,\n },\n {\n id: TimeSlot.APPOINTMENT, //TODO: à commenter ? remplacé par idType 7 ?\n name: 'Rdv',\n internalName: 'Rdv',\n duration: 20,\n // idRole: [Role.ACCOUNTANT, Role.COMMERCIAL, Role.SOCIAL, Role.JURIDIC, Role.EXPERT_ACCOUNTANT, Role.FACTURATION, Role.LITIGE, Role.TECHNICAL_ADVISOR],\n forWholeService: false,\n idTimeCounterType: TimeCounterType.CALENDLY.id,\n },\n {\n id: TimeSlot.SUPPORTING_CREATION_OF_SOCIETY,\n name: 'Accompagnement pour la création de mon entreprise',\n internalName: 'Rdv création',\n category: TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.JURIDIC)?.name,\n duration: 30,\n idRole: [Role.JURIDIC],\n forWholeService: false,\n idTimeCounterType: TimeCounterType.CALENDLY.id,\n },\n {\n id: TimeSlot.APPROVAL_FINANCIAL_STATEMENTS_AND_DISTRIBUTE_DIVIDENDS,\n name: 'Approuver les comptes et/ou distribuer des dividendes',\n internalName: 'Rdv juridique',\n category: TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.JURIDIC)?.name,\n duration: 30,\n idRole: [Role.JURIDIC],\n forWholeService: false,\n idTimeCounterType: TimeCounterType.CALENDLY.id,\n },\n {\n id: TimeSlot.EDIT_SOCIETY,\n name: 'Modifier mon entreprise',\n internalName: 'Rdv juridique',\n category: TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.JURIDIC)?.name,\n duration: 30,\n idRole: [Role.JURIDIC],\n forWholeService: false,\n idTimeCounterType: TimeCounterType.CALENDLY.id,\n },\n {\n id: TimeSlot.CLOSE_SOCIETY,\n name: 'Fermer mon entreprise',\n internalName: 'Rdv juridique',\n category: TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.JURIDIC)?.name,\n duration: 30,\n idRole: [Role.JURIDIC],\n forWholeService: false,\n idTimeCounterType: TimeCounterType.CALENDLY.id,\n },\n {\n id: TimeSlot.TAX_ADVICE_OR_COMPLEX_LEGAL_ARRANGEMENTS,\n name: 'Conseils fiscaux ou montages juridiques complexes',\n internalName: 'Rdv juridique',\n category: TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.JURIDIC)?.name,\n duration: 60, \n idRole: [Role.JURIDIC, Role.DIRECTOR],\n forWholeService: false,\n idTimeCounterType: TimeCounterType.CALENDLY.id,\n },\n {\n id: TimeSlot.FIX_UNPAID,\n name: 'Régulariser un paiement',\n internalName: 'Rdv impayés',\n duration: 30,\n category: TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.BILLING)?.name,\n idRole:[Role.FACTURATION],\n forWholeService: true,\n idTimeCounterType: TimeCounterType.CALENDLY.id,\n },\n {\n id: TimeSlot.ANNUAL_FINANCIAL_STATEMENTS,\n name: 'Lecture et explication des comptes annuels',\n internalName: 'Conseils spécialisés',\n category: TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.SPECIALISED)?.name,\n duration: 30,\n idRole: [Role.TECHNICAL_ADVISOR],\n forWholeService: true,\n idTimeCounterType: TimeCounterType.CALENDLY.id,\n },\n {\n id: TimeSlot.MANAGER_REVENUE,\n name: 'Rémunération du dirigeant & dividendes',\n internalName: 'Conseils spécialisés',\n category: TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.SPECIALISED)?.name,\n duration: 30,\n idRole: [Role.TECHNICAL_ADVISOR],\n forWholeService: true,\n idTimeCounterType: TimeCounterType.CALENDLY.id,\n },\n {\n id: TimeSlot.SPECIALISED_FISCAL_QUESTIONS,\n name: 'Questions fiscales spécifiques (crédits d\\'impôts, ZFANG, autres statuts, etc.)',\n internalName: 'Conseils spécialisés',\n category: TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.SPECIALISED)?.name,\n duration: 30,\n idRole: [Role.TECHNICAL_ADVISOR],\n forWholeService: true,\n idTimeCounterType: TimeCounterType.CALENDLY.id,\n },\n {\n id: TimeSlot.VAT_TERRITORIALITY,\n name: 'Territorialité de TVA',\n internalName: 'Conseils spécialisés',\n category: TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.SPECIALISED)?.name,\n duration: 30,\n idRole: [Role.TECHNICAL_ADVISOR],\n forWholeService: true,\n idTimeCounterType: TimeCounterType.CALENDLY.id,\n },\n {\n id: TimeSlot.FINANCIAL_SOURCE,\n name: 'Sources de financement',\n internalName: 'Conseils spécialisés',\n category: TimeSlotCategoryDetail.find(c => c.id === TimeSlotCategory.SPECIALISED)?.name,\n duration: 30,\n idRole: [Role.TECHNICAL_ADVISOR],\n forWholeService: true,\n idTimeCounterType: TimeCounterType.CALENDLY.id,\n },\n];"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../../../ts/utils/payment.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAe,qBAAqB,EAAiB,WAAW,EAA0B,MAAM,UAAU,CAAC;AAK5H,UAAU,gBAAiB,SAAQ,QAAQ;IACzC,IAAI,EAAE,aAAa,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC;IAC7D,YAAY,EAAE,QAAQ,EAAE,CAAA;CACzB;AAED;;;;;;;;;GASG;AACH,QAAA,MAAM,0BAA0B,aAAc,QAAQ,EAAE,UAAS,CAAC,aAAa,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC,EAAE,KAA2D,gBAAgB,EAoCrM,CAAC;AAkBF;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,qBAAqB,WAAY,qBAAqB,KAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../../../ts/utils/payment.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAe,qBAAqB,EAAiB,WAAW,EAA0B,MAAM,UAAU,CAAC;AAK5H,UAAU,gBAAiB,SAAQ,QAAQ;IACzC,IAAI,EAAE,aAAa,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC;IAC7D,YAAY,EAAE,QAAQ,EAAE,CAAA;CACzB;AAED;;;;;;;;;GASG;AACH,QAAA,MAAM,0BAA0B,aAAc,QAAQ,EAAE,UAAS,CAAC,aAAa,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC,EAAE,KAA2D,gBAAgB,EAoCrM,CAAC;AAkBF;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,qBAAqB,WAAY,qBAAqB,KAAE,WAAW,EAyQxE,CAAC;AAEF,OAAO,EACL,0BAA0B,EAAE,qBAAqB,GAClD,CAAC"}
|
|
@@ -89,6 +89,10 @@ const calculatePaymentsAuto = (params) => {
|
|
|
89
89
|
throw new Error('Ce type de prestation ne correspond pas aux conditions attendues.');
|
|
90
90
|
if (listPartialExercicePrestationExpress.length && (listPartialExercicePrestationExpress === null || listPartialExercicePrestationExpress === void 0 ? void 0 : listPartialExercicePrestationExpress.some((ep) => !(ep === null || ep === void 0 ? void 0 : ep.startDate))))
|
|
91
91
|
throw new Error('Start date of some exercice are missing');
|
|
92
|
+
let yearlyAmountNonExpressClone = yearlyAmountNonExpress;
|
|
93
|
+
if (isWithApplicationFees) {
|
|
94
|
+
yearlyAmountNonExpressClone -= (0, prestation_1.getApplicationFeesAmount)(idLegalForm); //HT
|
|
95
|
+
}
|
|
92
96
|
const nbExoExpress = listPartialExercicePrestationExpress.length;
|
|
93
97
|
const listPayments = [];
|
|
94
98
|
// on récupère le/les premiers réglements effectués, non alloués
|
|
@@ -211,7 +215,7 @@ const calculatePaymentsAuto = (params) => {
|
|
|
211
215
|
let countMonthsBeforeExerciceEnd = Math.ceil(dayjs(exerciceEndDate).diff(paymentDate, 'months', true));
|
|
212
216
|
if (countMonthsBeforeExerciceEnd < 3)
|
|
213
217
|
countMonthsBeforeExerciceEnd = 3;
|
|
214
|
-
const exoAmount = isFirstNonExpress ?
|
|
218
|
+
const exoAmount = isFirstNonExpress ? yearlyAmountNonExpressClone : nextYearlyAmountNonExpress;
|
|
215
219
|
const remainingBeforeThisExo = remainingAmount;
|
|
216
220
|
remainingAmount += priceWithTaxesIncluded ? exoAmount : (0, types_1.getTaxesIncludedAmount)(exoAmount, idVat);
|
|
217
221
|
// Si le premier règlement couvre le coût de cet exercicePrestation,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payment.js","sourceRoot":"","sources":["../../../ts/utils/payment.ts"],"names":[],"mappings":"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","sourcesContent":["'use strict';\n\nimport { IPayment, IRegulation, ParamsForPaymentsAuto, PaymentMethod, PaymentAuto, getTaxesIncludedAmount } from '../types';\nimport * as dayjs from 'dayjs';\nimport { PartialExercicePrestationExpress } from '../types/Interface/api/payment/Util';\nimport { getApplicationFeesAmount, getPriceGrid } from './prestation';\n\ninterface PaymentsWithList extends IPayment {\n type: 'isComptable' | 'isJuridique' | 'isSocial' | 'isOther',\n listPayments: IPayment[]\n}\n\n/**\n * A partir d'une liste de payment (avec include jusqu'à prestationList, \n * avec en attributs 'isComptable' | 'isJuridique' | 'isSocial' | 'isOther')\n * permet de récupérer uniquement le premier paiement de chaque type \n * et les autres payments dans listPayments\n * avec possibilité de filtrer avec le tableau de filtres\n * @param payments \n * @param types \n * @returns \n */\nconst groupPaymentsByServiceType = (payments: IPayment[], types: ('isComptable' | 'isJuridique' | 'isSocial' | 'isOther')[] = ['isComptable', 'isJuridique', 'isSocial', 'isOther']): PaymentsWithList[] => {\n const prestaComptable = payments.filter((el) => el?.paymentsPrestations?.prestationsList?.isComptable ?? false);\n const prestaSocial = payments.filter((el) => !el?.paymentsPrestations?.prestationsList?.isComptable && el?.paymentsPrestations?.prestationsList?.isSocial);\n const prestaJuridique = payments.filter((el) => !el?.paymentsPrestations?.prestationsList?.isComptable && el?.paymentsPrestations?.prestationsList?.isJuridique);\n const prestaOther = payments.filter((el) => !el?.paymentsPrestations?.prestationsList?.isComptable && !el?.paymentsPrestations?.prestationsList?.isJuridique && !el?.paymentsPrestations?.prestationsList?.isSocial);\n \n const societyPayment: PaymentsWithList[] = [];\n if (prestaComptable.length && types.includes('isComptable')) {\n societyPayment.push({\n ...prestaComptable[0], // Données de base\n type: 'isComptable',\n listPayments: prestaComptable,\n });\n }\n if (prestaSocial.length && types.includes('isSocial')) {\n societyPayment.push({\n ...prestaSocial[0], // Données de base\n type: 'isSocial',\n listPayments: prestaSocial,\n });\n }\n if (prestaJuridique.length && types.includes('isJuridique')) {\n societyPayment.push({\n ...prestaJuridique[0], // Données de base\n type: 'isJuridique',\n listPayments: prestaJuridique,\n });\n }\n if (prestaOther.length && types.includes('isOther')) {\n societyPayment.push({\n ...prestaOther[0], // Données de base\n type: 'isOther',\n listPayments: prestaOther,\n });\n }\n return societyPayment;\n};\n\nconst calculateFees = (amount: number, goToClient: Date, paymentDate: Date):number => {\n const yearlyPriceIncreasing = 1.0275;\n\n const oneYearLessIfIn3LastMonthsOfYear = dayjs(goToClient).month() >= 9 ? 1 : 0;\n\n if (dayjs(paymentDate).year() - dayjs().year() > 0) {\n const nbYearsMore = dayjs(paymentDate).year() - dayjs().year() - oneYearLessIfIn3LastMonthsOfYear;\n // on applique X fois l'augmentation\n // ex. : si on lance l'appel en 2024, et qu'on génére un paiement pour 2026, on applique 2 fois l'augmentation\n // soit amount * yearlyPriceIncreasing * yearlyPriceIncreasing\n // soit amount * yearlyPriceIncreasing ^ nbYearsMore\n amount = amount * Math.pow(yearlyPriceIncreasing, nbYearsMore);\n }\n return amount;\n};\n\n/**\n// * @param {number} firstPaymentAmount - amount of the first payment (first regulation of the customer)\n * @param {Date} firstExerciceNonExpresssEndDate - end date of the first exercice non express\n * @param {number} idPrestation - prestation id\n * @param {number} idLegalForm - legal form id of the society\n * @param {boolean} isWithApplicationFees - if the prestation has application fees to paid\n * @param {IPrestationList} prestationList - type of prestation (hidden: 0, isCatalog: 1, isComptable: 1)\n * @param {number} idVat - vat id of society linked\n * @param {number} yearlyAmountNonExpress - yearly amount of non express prestation (HT)\n * @param {number} nextYearlyAmountNonExpress - yearly amount of non express prestation for next years (HT)\n * @param {PartialExercicePrestationExpress[]} listPartialExercicePrestationExpress - list of exercicePrestation linked to idPrestation -> used to get express\n * @param {IRegulation[]} listRegulations - list of regulations linked to idPrestation (TTC)\n * @param {Date} recoveryDate - date of recovery of the society\n * @returns { IPayment[] } list of payment to create for billing auto, after each presta go to onBoarding\n */\nconst calculatePaymentsAuto = (params: ParamsForPaymentsAuto):PaymentAuto[] => {\n const { idTypeBrand, goToClient, isWithApplicationFees, firstExerciceNonExpresssEndDate, idPrestation, idLegalForm, prestationList, idVat, yearlyAmountNonExpress, nextYearlyAmountNonExpress, listPartialExercicePrestationExpress, listRegulations, recoveryDate } = params;\n \n if (!yearlyAmountNonExpress) throw new Error('Le montant annuel des prestations non express ne peut pas être nul.');\n\n let initializedPaymentDate = dayjs().endOf('month').diff(dayjs(), 'day') < 3/* || dayjs().date() >= 15 */\n ? dayjs().add(2, 'month').startOf('month').toDate()\n : dayjs().add(1, 'month').startOf('month').toDate();\n \n //Si date de reprise, alors on initialise à cette date\n if (recoveryDate && dayjs(recoveryDate).isAfter(dayjs(), 'month')) {\n initializedPaymentDate = dayjs(recoveryDate).startOf('month').toDate();\n }\n\n // On récupère la grille tarifaire pour savoir si les tarifs sont HT ou TTC \n // et pour connaitre le montant du coût de l'app\n if (!prestationList.id) throw new Error('idPrestationList manquant');\n const priceGrid = getPriceGrid(idTypeBrand, prestationList.id);\n if (!priceGrid) throw new Error('Impossible de trouver la grille tarifaire correspondante');\n const { applicationCost, priceWithTaxesIncluded } = priceGrid;\n const applicationCostTotalTTC = (priceWithTaxesIncluded ? applicationCost : getTaxesIncludedAmount(applicationCost, idVat)) * 12;\n const applicationFeesAmountTTC = getApplicationFeesAmount(idLegalForm, idVat);\n\n if (prestationList?.isCatalog || !prestationList?.isComptable) throw new Error('Ce type de prestation ne correspond pas aux conditions attendues.');\n if (listPartialExercicePrestationExpress.length && listPartialExercicePrestationExpress?.some((ep: PartialExercicePrestationExpress) => !ep?.startDate)) throw new Error('Start date of some exercice are missing');\n\n const nbExoExpress = listPartialExercicePrestationExpress.length;\n const listPayments:PaymentAuto[] = [];\n\n // on récupère le/les premiers réglements effectués, non alloués\n // const isApplicationFeesAlreadyPaid = false;\n const sumRegulations = listRegulations.reduce((acc: number, r:IRegulation) => {\n //Si la regulation est rattachée à un paymentExpectation, on récupère le détail\n // et on ne prend que les frais de dossier (applicationFee) + le montant de la compta (accountingFee)\n \n // Commenté temporairement :\n // Pour l'instant, on ne prend plus en compte les paymentExpectation :\n // On part du principe que si isWithApplicationFees = true, alors les regulations contiennent les frais de dossier\n // sinon, ils sont offerts et n'apparaissent pas\n /* if (r.paymentsExpectation?.payload) {\n const payload = JSON.parse(r.paymentsExpectation?.payload);\n if (+payload?.applicationFee > 0) {\n isApplicationFeesAlreadyPaid = true;\n acc += +payload?.applicationFee;\n }\n if (+payload?.accountingFee > 0) acc += +payload?.accountingFee;\n return acc;\n } else {\n return acc + r.amount - r.amountUsed;\n } */\n return acc + r.amount - r.amountUsed;\n }, 0);\n let remainingAmount = -sumRegulations; //TTC\n let paymentDate = initializedPaymentDate;\n\n //On order les exercicePrestation par startDate ASC et id ASC\n listPartialExercicePrestationExpress.sort((a, b) => {\n const aStartDate = a?.startDate as Date;\n const bStartDate = b?.startDate as Date;\n return dayjs(aStartDate).diff(bStartDate);\n });\n\n // Si les frais de dossiers sont facturés, on ajoute un paiement sur le mois en cours\n if (isWithApplicationFees) {\n listPayments.push({\n amount: applicationFeesAmountTTC, //TTC\n isPaid: true,\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,\n closingDate: listPartialExercicePrestationExpress?.length ? listPartialExercicePrestationExpress[0].endDate : firstExerciceNonExpresssEndDate,\n comment: 'Frais de dossier',\n });\n remainingAmount += applicationFeesAmountTTC;\n }\n \n // =========================\n // EXPRESS\n // =========================\n listPartialExercicePrestationExpress.forEach((exercicePrestation:PartialExercicePrestationExpress, indexEP: number) => {\n const remainingBeforeThisExo = remainingAmount;\n\n remainingAmount += !priceWithTaxesIncluded \n ? getTaxesIncludedAmount(exercicePrestation.totalAmount, idVat) \n : exercicePrestation.totalAmount; //TTC\n \n \n // Si le premier règlement couvre le coût de cet exercicePrestation, \n // on créé un paiement pour cet exo et on passe au suivant\n if (remainingAmount <= 0) {\n listPayments.push({\n amount: Math.round(100 * (!priceWithTaxesIncluded \n ? getTaxesIncludedAmount(exercicePrestation.totalAmount, idVat) \n : exercicePrestation.totalAmount)) / 100, //TTC\n isPaid: true,\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exercicePrestation.endDate,\n });\n return;\n } else if (remainingBeforeThisExo < 0 && remainingAmount > 0) {\n // Si le paiement couvre une partie du paiement, on créé un paiement pour cette partie lié à l'exo \n listPayments.push({\n amount: Math.round(100 * -remainingBeforeThisExo) / 100, //TTC\n isPaid: true,\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exercicePrestation.endDate,\n });\n }\n \n //express : on étale en countExpressMonthlyPayment (nb de mensualités)\n let remainingAmountByExercicePrestation = remainingAmount; //TTC\n let countExpressMonthlyPayment = exercicePrestation?.countExpressMonthlyPayment ?? 3; //TTC\n //Si un premier règlement est généré avec le montant des regulations, on le considère comme une mensualité (unioquement pour le premier express et la première mensualité)\n if (indexEP === 0 && sumRegulations > 0) countExpressMonthlyPayment -= 1;\n\n const monthlyAmount = remainingAmountByExercicePrestation / countExpressMonthlyPayment; //TTC\n for (let index = 1; index <= countExpressMonthlyPayment; index++) {\n // On arrondis les 11 premières mensualités, mais on récupère le reste pour la dernière mensualité, pour éviter les centimes perdus en arrondis\n // et on applique le taux de tva de la société\n const amount = index < countExpressMonthlyPayment ? monthlyAmount : remainingAmountByExercicePrestation; //TTC\n \n // On évite les paiements de moins d'0,01 € (pour les paymentsExpectations ayant une différence de 1 cents)\n if (amount >= 0.005)\n listPayments.push({\n amount: Math.round(100 * amount) / 100,\n datePayment: paymentDate,\n idPrestation,\n idPaymentMethod: PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exercicePrestation.endDate,\n });\n remainingAmountByExercicePrestation -= monthlyAmount; \n paymentDate = dayjs(paymentDate).add(1, 'month').startOf('month').toDate();\n }\n remainingAmount = 0;\n });\n\n // =========================\n // NON EXPRESS\n // =========================\n // on lisse sur le nb de mois restants (avec au minimum 3 mensualités)\n // Si un seul exo express, alors on met les paiements de l'exo actuel en parallèle\n // sinon, ils sont à la suite des express\n if (nbExoExpress <= 1) paymentDate = initializedPaymentDate;\n let exerciceEndDate = dayjs(firstExerciceNonExpresssEndDate).toDate();\n\n let hasGeneratedWholeYear = false;\n let isFirstNonExpress = true;\n \n //On génère des paiements jusqu'à ce qu'un exercice soit entier (12 mois), non express\n while (!hasGeneratedWholeYear) {\n \n //On compte le nb de mois restants entre la date à laquelle le paiement va être créé et la date de fin d'exercice\n let countMonthsBeforeExerciceEnd = Math.ceil(dayjs(exerciceEndDate).diff(paymentDate, 'months', true));\n if (countMonthsBeforeExerciceEnd < 3) countMonthsBeforeExerciceEnd = 3;\n\n const exoAmount = isFirstNonExpress ? yearlyAmountNonExpress : nextYearlyAmountNonExpress;\n const remainingBeforeThisExo = remainingAmount;\n remainingAmount += priceWithTaxesIncluded ? exoAmount : getTaxesIncludedAmount(exoAmount, idVat);\n\n // Si le premier règlement couvre le coût de cet exercicePrestation, \n // on créé un paiement pour cet exo et on passe au suivant\n if (remainingAmount <= 0) {\n listPayments.push({\n amount: Math.round(100 * (priceWithTaxesIncluded ? exoAmount : getTaxesIncludedAmount(exoAmount, idVat))) / 100, //TTC\n isPaid: true,\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exerciceEndDate,\n });\n exerciceEndDate = dayjs(exerciceEndDate).startOf('month').add(1, 'year').endOf('month').toDate();\n continue;\n } else if (remainingBeforeThisExo < 0 && remainingAmount > 0) {\n // Si le paiement couvre une partie du paiement, on créé un paiement pour cette partie lié à l'exo \n listPayments.push({\n amount: Math.round(100 * -remainingBeforeThisExo) / 100, //TTC\n isPaid: true,\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exerciceEndDate,\n });\n }\n\n let remainingAmountByExercicePrestation = remainingAmount;\n\n // - frais d'application dès les second exo non express\n if (!isFirstNonExpress) remainingAmountByExercicePrestation += applicationCostTotalTTC;\n\n const monthlyAmount = remainingAmountByExercicePrestation / countMonthsBeforeExerciceEnd; //TTC\n\n if (monthlyAmount > 0) {\n for (let index = 1; index <= countMonthsBeforeExerciceEnd; index++) {\n let amount = index < countMonthsBeforeExerciceEnd ? monthlyAmount : remainingAmountByExercicePrestation;\n \n // Si besoin, on applique les frais nécessaires :\n // - 2,75% d'augmentation chaque année, sauf si souscriptiuon dans les 3 derniers mois de l'année civile)\n amount = calculateFees(amount, goToClient, paymentDate);\n \n listPayments.push({\n amount: Math.round(100 * amount) / 100,\n datePayment: paymentDate,\n idPrestation,\n idPaymentMethod: PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exerciceEndDate,\n });\n remainingAmountByExercicePrestation -= monthlyAmount; \n paymentDate = dayjs(paymentDate).add(1, 'month').startOf('month').toDate();\n }\n exerciceEndDate = dayjs(exerciceEndDate).startOf('month').add(1, 'year').endOf('month').toDate();\n }\n remainingAmount = 0;\n if (countMonthsBeforeExerciceEnd === 12) hasGeneratedWholeYear = true;\n isFirstNonExpress = false;\n }\n\n remainingAmount = 0;\n\n // =========================\n // JUSQU'EN DECEMBRE\n // =========================\n // On applique le taux de tva de la société, si besoin, selon la grille tarifaire\n remainingAmount += priceWithTaxesIncluded ? nextYearlyAmountNonExpress : getTaxesIncludedAmount(nextYearlyAmountNonExpress, idVat);\n\n let remainingAmountByExercicePrestation = remainingAmount;\n //On compte le nb de mois restants entre la date à laquelle le paiement va être créé et la date de fin d'exercice\n let countMonthsBeforeExerciceEnd = Math.ceil(dayjs(exerciceEndDate).diff(paymentDate, 'months', true));\n if (countMonthsBeforeExerciceEnd < 3) countMonthsBeforeExerciceEnd = 3;\n\n // - frais d'application dès les second exo non express\n remainingAmountByExercicePrestation += applicationCostTotalTTC;\n \n const monthlyAmount = remainingAmountByExercicePrestation / countMonthsBeforeExerciceEnd;\n \n // Si aucun paiement généré, on stoppe là\n if (!listPayments.length) return [];\n\n while (dayjs(listPayments.slice(-1)[0].datePayment).month() < 11) {\n let amount = monthlyAmount;\n\n // Si besoin, on applique les frais nécessaires :\n // - 2,75% d'augmentation chaque année, sauf si souscriptiuon dans les 3 derniers mois de l'année civile)\n // - frais d'application dès les second exo non express\n amount = calculateFees(amount, goToClient, paymentDate);\n\n listPayments.push({\n amount: Math.round(100 * amount) / 100,\n datePayment: paymentDate,\n idPrestation,\n idPaymentMethod: PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exerciceEndDate,\n });\n paymentDate = dayjs(paymentDate).add(1, 'month').startOf('month').toDate();\n }\n\n return listPayments;\n};\n\nexport {\n groupPaymentsByServiceType, calculatePaymentsAuto,\n};"]}
|
|
1
|
+
{"version":3,"file":"payment.js","sourceRoot":"","sources":["../../../ts/utils/payment.ts"],"names":[],"mappings":"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","sourcesContent":["'use strict';\n\nimport { IPayment, IRegulation, ParamsForPaymentsAuto, PaymentMethod, PaymentAuto, getTaxesIncludedAmount } from '../types';\nimport * as dayjs from 'dayjs';\nimport { PartialExercicePrestationExpress } from '../types/Interface/api/payment/Util';\nimport { getApplicationFeesAmount, getPriceGrid } from './prestation';\n\ninterface PaymentsWithList extends IPayment {\n type: 'isComptable' | 'isJuridique' | 'isSocial' | 'isOther',\n listPayments: IPayment[]\n}\n\n/**\n * A partir d'une liste de payment (avec include jusqu'à prestationList, \n * avec en attributs 'isComptable' | 'isJuridique' | 'isSocial' | 'isOther')\n * permet de récupérer uniquement le premier paiement de chaque type \n * et les autres payments dans listPayments\n * avec possibilité de filtrer avec le tableau de filtres\n * @param payments \n * @param types \n * @returns \n */\nconst groupPaymentsByServiceType = (payments: IPayment[], types: ('isComptable' | 'isJuridique' | 'isSocial' | 'isOther')[] = ['isComptable', 'isJuridique', 'isSocial', 'isOther']): PaymentsWithList[] => {\n const prestaComptable = payments.filter((el) => el?.paymentsPrestations?.prestationsList?.isComptable ?? false);\n const prestaSocial = payments.filter((el) => !el?.paymentsPrestations?.prestationsList?.isComptable && el?.paymentsPrestations?.prestationsList?.isSocial);\n const prestaJuridique = payments.filter((el) => !el?.paymentsPrestations?.prestationsList?.isComptable && el?.paymentsPrestations?.prestationsList?.isJuridique);\n const prestaOther = payments.filter((el) => !el?.paymentsPrestations?.prestationsList?.isComptable && !el?.paymentsPrestations?.prestationsList?.isJuridique && !el?.paymentsPrestations?.prestationsList?.isSocial);\n \n const societyPayment: PaymentsWithList[] = [];\n if (prestaComptable.length && types.includes('isComptable')) {\n societyPayment.push({\n ...prestaComptable[0], // Données de base\n type: 'isComptable',\n listPayments: prestaComptable,\n });\n }\n if (prestaSocial.length && types.includes('isSocial')) {\n societyPayment.push({\n ...prestaSocial[0], // Données de base\n type: 'isSocial',\n listPayments: prestaSocial,\n });\n }\n if (prestaJuridique.length && types.includes('isJuridique')) {\n societyPayment.push({\n ...prestaJuridique[0], // Données de base\n type: 'isJuridique',\n listPayments: prestaJuridique,\n });\n }\n if (prestaOther.length && types.includes('isOther')) {\n societyPayment.push({\n ...prestaOther[0], // Données de base\n type: 'isOther',\n listPayments: prestaOther,\n });\n }\n return societyPayment;\n};\n\nconst calculateFees = (amount: number, goToClient: Date, paymentDate: Date):number => {\n const yearlyPriceIncreasing = 1.0275;\n\n const oneYearLessIfIn3LastMonthsOfYear = dayjs(goToClient).month() >= 9 ? 1 : 0;\n\n if (dayjs(paymentDate).year() - dayjs().year() > 0) {\n const nbYearsMore = dayjs(paymentDate).year() - dayjs().year() - oneYearLessIfIn3LastMonthsOfYear;\n // on applique X fois l'augmentation\n // ex. : si on lance l'appel en 2024, et qu'on génére un paiement pour 2026, on applique 2 fois l'augmentation\n // soit amount * yearlyPriceIncreasing * yearlyPriceIncreasing\n // soit amount * yearlyPriceIncreasing ^ nbYearsMore\n amount = amount * Math.pow(yearlyPriceIncreasing, nbYearsMore);\n }\n return amount;\n};\n\n/**\n// * @param {number} firstPaymentAmount - amount of the first payment (first regulation of the customer)\n * @param {Date} firstExerciceNonExpresssEndDate - end date of the first exercice non express\n * @param {number} idPrestation - prestation id\n * @param {number} idLegalForm - legal form id of the society\n * @param {boolean} isWithApplicationFees - if the prestation has application fees to paid\n * @param {IPrestationList} prestationList - type of prestation (hidden: 0, isCatalog: 1, isComptable: 1)\n * @param {number} idVat - vat id of society linked\n * @param {number} yearlyAmountNonExpress - yearly amount of non express prestation (HT)\n * @param {number} nextYearlyAmountNonExpress - yearly amount of non express prestation for next years (HT)\n * @param {PartialExercicePrestationExpress[]} listPartialExercicePrestationExpress - list of exercicePrestation linked to idPrestation -> used to get express\n * @param {IRegulation[]} listRegulations - list of regulations linked to idPrestation (TTC)\n * @param {Date} recoveryDate - date of recovery of the society\n * @returns { IPayment[] } list of payment to create for billing auto, after each presta go to onBoarding\n */\nconst calculatePaymentsAuto = (params: ParamsForPaymentsAuto):PaymentAuto[] => {\n const { idTypeBrand, goToClient, isWithApplicationFees, firstExerciceNonExpresssEndDate, idPrestation, idLegalForm, prestationList, idVat, yearlyAmountNonExpress, nextYearlyAmountNonExpress, listPartialExercicePrestationExpress, listRegulations, recoveryDate } = params;\n \n if (!yearlyAmountNonExpress) throw new Error('Le montant annuel des prestations non express ne peut pas être nul.');\n\n let initializedPaymentDate = dayjs().endOf('month').diff(dayjs(), 'day') < 3/* || dayjs().date() >= 15 */\n ? dayjs().add(2, 'month').startOf('month').toDate()\n : dayjs().add(1, 'month').startOf('month').toDate();\n \n //Si date de reprise, alors on initialise à cette date\n if (recoveryDate && dayjs(recoveryDate).isAfter(dayjs(), 'month')) {\n initializedPaymentDate = dayjs(recoveryDate).startOf('month').toDate();\n }\n\n // On récupère la grille tarifaire pour savoir si les tarifs sont HT ou TTC \n // et pour connaitre le montant du coût de l'app\n if (!prestationList.id) throw new Error('idPrestationList manquant');\n const priceGrid = getPriceGrid(idTypeBrand, prestationList.id);\n if (!priceGrid) throw new Error('Impossible de trouver la grille tarifaire correspondante');\n const { applicationCost, priceWithTaxesIncluded } = priceGrid;\n const applicationCostTotalTTC = (priceWithTaxesIncluded ? applicationCost : getTaxesIncludedAmount(applicationCost, idVat)) * 12;\n const applicationFeesAmountTTC = getApplicationFeesAmount(idLegalForm, idVat);\n\n if (prestationList?.isCatalog || !prestationList?.isComptable) throw new Error('Ce type de prestation ne correspond pas aux conditions attendues.');\n if (listPartialExercicePrestationExpress.length && listPartialExercicePrestationExpress?.some((ep: PartialExercicePrestationExpress) => !ep?.startDate)) throw new Error('Start date of some exercice are missing');\n \n let yearlyAmountNonExpressClone = yearlyAmountNonExpress;\n if (isWithApplicationFees) {\n yearlyAmountNonExpressClone -= getApplicationFeesAmount(idLegalForm); //HT\n }\n\n const nbExoExpress = listPartialExercicePrestationExpress.length;\n const listPayments:PaymentAuto[] = [];\n\n // on récupère le/les premiers réglements effectués, non alloués\n // const isApplicationFeesAlreadyPaid = false;\n const sumRegulations = listRegulations.reduce((acc: number, r:IRegulation) => {\n //Si la regulation est rattachée à un paymentExpectation, on récupère le détail\n // et on ne prend que les frais de dossier (applicationFee) + le montant de la compta (accountingFee)\n \n // Commenté temporairement :\n // Pour l'instant, on ne prend plus en compte les paymentExpectation :\n // On part du principe que si isWithApplicationFees = true, alors les regulations contiennent les frais de dossier\n // sinon, ils sont offerts et n'apparaissent pas\n /* if (r.paymentsExpectation?.payload) {\n const payload = JSON.parse(r.paymentsExpectation?.payload);\n if (+payload?.applicationFee > 0) {\n isApplicationFeesAlreadyPaid = true;\n acc += +payload?.applicationFee;\n }\n if (+payload?.accountingFee > 0) acc += +payload?.accountingFee;\n return acc;\n } else {\n return acc + r.amount - r.amountUsed;\n } */\n return acc + r.amount - r.amountUsed;\n }, 0);\n let remainingAmount = -sumRegulations; //TTC\n let paymentDate = initializedPaymentDate;\n\n //On order les exercicePrestation par startDate ASC et id ASC\n listPartialExercicePrestationExpress.sort((a, b) => {\n const aStartDate = a?.startDate as Date;\n const bStartDate = b?.startDate as Date;\n return dayjs(aStartDate).diff(bStartDate);\n });\n\n // Si les frais de dossiers sont facturés, on ajoute un paiement sur le mois en cours\n if (isWithApplicationFees) {\n listPayments.push({\n amount: applicationFeesAmountTTC, //TTC\n isPaid: true,\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,\n closingDate: listPartialExercicePrestationExpress?.length ? listPartialExercicePrestationExpress[0].endDate : firstExerciceNonExpresssEndDate,\n comment: 'Frais de dossier',\n });\n remainingAmount += applicationFeesAmountTTC;\n }\n \n // =========================\n // EXPRESS\n // =========================\n listPartialExercicePrestationExpress.forEach((exercicePrestation:PartialExercicePrestationExpress, indexEP: number) => {\n const remainingBeforeThisExo = remainingAmount;\n\n remainingAmount += !priceWithTaxesIncluded \n ? getTaxesIncludedAmount(exercicePrestation.totalAmount, idVat) \n : exercicePrestation.totalAmount; //TTC\n \n \n // Si le premier règlement couvre le coût de cet exercicePrestation, \n // on créé un paiement pour cet exo et on passe au suivant\n if (remainingAmount <= 0) {\n listPayments.push({\n amount: Math.round(100 * (!priceWithTaxesIncluded \n ? getTaxesIncludedAmount(exercicePrestation.totalAmount, idVat) \n : exercicePrestation.totalAmount)) / 100, //TTC\n isPaid: true,\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exercicePrestation.endDate,\n });\n return;\n } else if (remainingBeforeThisExo < 0 && remainingAmount > 0) {\n // Si le paiement couvre une partie du paiement, on créé un paiement pour cette partie lié à l'exo \n listPayments.push({\n amount: Math.round(100 * -remainingBeforeThisExo) / 100, //TTC\n isPaid: true,\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exercicePrestation.endDate,\n });\n }\n \n //express : on étale en countExpressMonthlyPayment (nb de mensualités)\n let remainingAmountByExercicePrestation = remainingAmount; //TTC\n let countExpressMonthlyPayment = exercicePrestation?.countExpressMonthlyPayment ?? 3; //TTC\n //Si un premier règlement est généré avec le montant des regulations, on le considère comme une mensualité (unioquement pour le premier express et la première mensualité)\n if (indexEP === 0 && sumRegulations > 0) countExpressMonthlyPayment -= 1;\n\n const monthlyAmount = remainingAmountByExercicePrestation / countExpressMonthlyPayment; //TTC\n for (let index = 1; index <= countExpressMonthlyPayment; index++) {\n // On arrondis les 11 premières mensualités, mais on récupère le reste pour la dernière mensualité, pour éviter les centimes perdus en arrondis\n // et on applique le taux de tva de la société\n const amount = index < countExpressMonthlyPayment ? monthlyAmount : remainingAmountByExercicePrestation; //TTC\n \n // On évite les paiements de moins d'0,01 € (pour les paymentsExpectations ayant une différence de 1 cents)\n if (amount >= 0.005)\n listPayments.push({\n amount: Math.round(100 * amount) / 100,\n datePayment: paymentDate,\n idPrestation,\n idPaymentMethod: PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exercicePrestation.endDate,\n });\n remainingAmountByExercicePrestation -= monthlyAmount; \n paymentDate = dayjs(paymentDate).add(1, 'month').startOf('month').toDate();\n }\n remainingAmount = 0;\n });\n\n // =========================\n // NON EXPRESS\n // =========================\n // on lisse sur le nb de mois restants (avec au minimum 3 mensualités)\n // Si un seul exo express, alors on met les paiements de l'exo actuel en parallèle\n // sinon, ils sont à la suite des express\n if (nbExoExpress <= 1) paymentDate = initializedPaymentDate;\n let exerciceEndDate = dayjs(firstExerciceNonExpresssEndDate).toDate();\n\n let hasGeneratedWholeYear = false;\n let isFirstNonExpress = true;\n \n //On génère des paiements jusqu'à ce qu'un exercice soit entier (12 mois), non express\n while (!hasGeneratedWholeYear) {\n \n //On compte le nb de mois restants entre la date à laquelle le paiement va être créé et la date de fin d'exercice\n let countMonthsBeforeExerciceEnd = Math.ceil(dayjs(exerciceEndDate).diff(paymentDate, 'months', true));\n if (countMonthsBeforeExerciceEnd < 3) countMonthsBeforeExerciceEnd = 3;\n\n const exoAmount = isFirstNonExpress ? yearlyAmountNonExpressClone : nextYearlyAmountNonExpress;\n const remainingBeforeThisExo = remainingAmount;\n remainingAmount += priceWithTaxesIncluded ? exoAmount : getTaxesIncludedAmount(exoAmount, idVat);\n\n // Si le premier règlement couvre le coût de cet exercicePrestation, \n // on créé un paiement pour cet exo et on passe au suivant\n if (remainingAmount <= 0) {\n listPayments.push({\n amount: Math.round(100 * (priceWithTaxesIncluded ? exoAmount : getTaxesIncludedAmount(exoAmount, idVat))) / 100, //TTC\n isPaid: true,\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exerciceEndDate,\n });\n exerciceEndDate = dayjs(exerciceEndDate).startOf('month').add(1, 'year').endOf('month').toDate();\n continue;\n } else if (remainingBeforeThisExo < 0 && remainingAmount > 0) {\n // Si le paiement couvre une partie du paiement, on créé un paiement pour cette partie lié à l'exo \n listPayments.push({\n amount: Math.round(100 * -remainingBeforeThisExo) / 100, //TTC\n isPaid: true,\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: listRegulations[0]?.idPaymentMethod ?? PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exerciceEndDate,\n });\n }\n\n let remainingAmountByExercicePrestation = remainingAmount;\n\n // - frais d'application dès les second exo non express\n if (!isFirstNonExpress) remainingAmountByExercicePrestation += applicationCostTotalTTC;\n\n const monthlyAmount = remainingAmountByExercicePrestation / countMonthsBeforeExerciceEnd; //TTC\n\n if (monthlyAmount > 0) {\n for (let index = 1; index <= countMonthsBeforeExerciceEnd; index++) {\n let amount = index < countMonthsBeforeExerciceEnd ? monthlyAmount : remainingAmountByExercicePrestation;\n \n // Si besoin, on applique les frais nécessaires :\n // - 2,75% d'augmentation chaque année, sauf si souscriptiuon dans les 3 derniers mois de l'année civile)\n amount = calculateFees(amount, goToClient, paymentDate);\n \n listPayments.push({\n amount: Math.round(100 * amount) / 100,\n datePayment: paymentDate,\n idPrestation,\n idPaymentMethod: PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exerciceEndDate,\n });\n remainingAmountByExercicePrestation -= monthlyAmount; \n paymentDate = dayjs(paymentDate).add(1, 'month').startOf('month').toDate();\n }\n exerciceEndDate = dayjs(exerciceEndDate).startOf('month').add(1, 'year').endOf('month').toDate();\n }\n remainingAmount = 0;\n if (countMonthsBeforeExerciceEnd === 12) hasGeneratedWholeYear = true;\n isFirstNonExpress = false;\n }\n\n remainingAmount = 0;\n\n // =========================\n // JUSQU'EN DECEMBRE\n // =========================\n // On applique le taux de tva de la société, si besoin, selon la grille tarifaire\n remainingAmount += priceWithTaxesIncluded ? nextYearlyAmountNonExpress : getTaxesIncludedAmount(nextYearlyAmountNonExpress, idVat);\n\n let remainingAmountByExercicePrestation = remainingAmount;\n //On compte le nb de mois restants entre la date à laquelle le paiement va être créé et la date de fin d'exercice\n let countMonthsBeforeExerciceEnd = Math.ceil(dayjs(exerciceEndDate).diff(paymentDate, 'months', true));\n if (countMonthsBeforeExerciceEnd < 3) countMonthsBeforeExerciceEnd = 3;\n\n // - frais d'application dès les second exo non express\n remainingAmountByExercicePrestation += applicationCostTotalTTC;\n \n const monthlyAmount = remainingAmountByExercicePrestation / countMonthsBeforeExerciceEnd;\n \n // Si aucun paiement généré, on stoppe là\n if (!listPayments.length) return [];\n\n while (dayjs(listPayments.slice(-1)[0].datePayment).month() < 11) {\n let amount = monthlyAmount;\n\n // Si besoin, on applique les frais nécessaires :\n // - 2,75% d'augmentation chaque année, sauf si souscriptiuon dans les 3 derniers mois de l'année civile)\n // - frais d'application dès les second exo non express\n amount = calculateFees(amount, goToClient, paymentDate);\n\n listPayments.push({\n amount: Math.round(100 * amount) / 100,\n datePayment: paymentDate,\n idPrestation,\n idPaymentMethod: PaymentMethod.DIRECT_DEBIT.id,\n closingDate: exerciceEndDate,\n });\n paymentDate = dayjs(paymentDate).add(1, 'month').startOf('month').toDate();\n }\n\n return listPayments;\n};\n\nexport {\n groupPaymentsByServiceType, calculatePaymentsAuto,\n};"]}
|
|
@@ -47,7 +47,7 @@ const isExpress = (idPrestationList) => {
|
|
|
47
47
|
};
|
|
48
48
|
exports.isExpress = isExpress;
|
|
49
49
|
const calculateScoringOfPrestation = (idPrestationType, prestations) => {
|
|
50
|
-
const prestationsSignedPaid = prestations.filter((prestation) => prestation.
|
|
50
|
+
const prestationsSignedPaid = prestations.filter((prestation) => prestation.terminationList === null);
|
|
51
51
|
// Get the list of prestations that are half price
|
|
52
52
|
const prestationHalfPriceList = Object.values(PrestationType_1.PrestationDetail).filter((p) => p.isComptable && !p.isCatalog);
|
|
53
53
|
const prestationHalfPriceIds = prestationHalfPriceList.map((t) => t.id);
|