@silexpert/core 1.1.307 → 1.1.308

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.
@@ -1,10 +1,13 @@
1
+ import { Role } from './Role';
1
2
  export declare enum CardType {
2
3
  BALANCE_SHEET = 1,
3
4
  BALANCE_SHEET_INTERMEDIATE = 2,
4
5
  BALANCE_SHEET_PREVISIONAL = 3,
5
6
  BALANCE_SHEET_LIQUIDATION = 4,
6
7
  BALANCE_SHEET_EXPRESS = 5,
7
- VAT = 6
8
+ VAT = 6,
9
+ CHECK_BALANCE_ANNOTATION_NEW_CLIENT = 8,
10
+ CHECK_BALANCE_ANNOTATION = 9
8
11
  }
9
12
  export declare enum CardState {
10
13
  TODO = 1,
@@ -13,18 +16,27 @@ export declare enum CardState {
13
16
  }
14
17
  export declare enum CardGroupEnum {
15
18
  BALANCE_SHEET_GROUP = 1,
16
- VAT_GROUP = 2
19
+ VAT_GROUP = 2,
20
+ ACCEPTATION_GROUP = 4
17
21
  }
18
22
  export declare const CardGroup: readonly [{
19
23
  readonly id: CardGroupEnum.BALANCE_SHEET_GROUP;
20
24
  readonly label: "Bilans";
21
25
  readonly types: CardType[];
26
+ readonly roles: readonly [Role.FRONT_OFFICE];
22
27
  readonly maxByDay: 3;
23
28
  }, {
24
29
  readonly id: CardGroupEnum.VAT_GROUP;
25
30
  readonly label: "Déclarations";
26
31
  readonly types: CardType[];
32
+ readonly roles: readonly [Role.FRONT_OFFICE];
27
33
  readonly maxByDay: 6;
34
+ }, {
35
+ readonly id: CardGroupEnum.ACCEPTATION_GROUP;
36
+ readonly label: "Contrôle solde bancaire & annotations";
37
+ readonly types: CardType[];
38
+ readonly roles: readonly [Role.DATA_OFFICER];
39
+ readonly maxByDay: 25;
28
40
  }];
29
41
  export declare const CardTypeLabel: readonly [{
30
42
  readonly id: CardType.BALANCE_SHEET;
@@ -56,6 +68,16 @@ export declare const CardTypeLabel: readonly [{
56
68
  readonly label: "TVA";
57
69
  readonly refLabel: "TVA";
58
70
  readonly groupId: CardGroupEnum.VAT_GROUP;
71
+ }, {
72
+ readonly id: CardType.CHECK_BALANCE_ANNOTATION_NEW_CLIENT;
73
+ readonly label: "Contrôle solde bancaire & mise en place annotation nouveau client";
74
+ readonly refLabel: "LABNC";
75
+ readonly groupId: CardGroupEnum.ACCEPTATION_GROUP;
76
+ }, {
77
+ readonly id: CardType.CHECK_BALANCE_ANNOTATION;
78
+ readonly label: "Contrôle solde bancaire & contrôle annotations client";
79
+ readonly refLabel: "LABC";
80
+ readonly groupId: CardGroupEnum.ACCEPTATION_GROUP;
59
81
  }];
60
82
  export interface UserCardsStats {
61
83
  idType: CardType;
@@ -1 +1 @@
1
- {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../../ts/types/Enum/Card.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,aAAa,IAAI;IACjB,0BAA0B,IAAI;IAC9B,yBAAyB,IAAI;IAC7B,yBAAyB,IAAI;IAC7B,qBAAqB,IAAI;IACzB,GAAG,IAAI;CAER;AAED,oBAAY,SAAS;IACnB,IAAI,IAAI;IACR,WAAW,IAAI;IACf,IAAI,IAAI;CAMT;AAED,oBAAY,aAAa;IACvB,mBAAmB,IAAI;IACvB,SAAS,IAAI;CAEd;AAED,eAAO,MAAM,SAAS;;;;;;;;;;EAmBZ,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0ChB,CAAC;AAEX,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B"}
1
+ {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../../ts/types/Enum/Card.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,oBAAY,QAAQ;IAClB,aAAa,IAAI;IACjB,0BAA0B,IAAI;IAC9B,yBAAyB,IAAI;IAC7B,yBAAyB,IAAI;IAC7B,qBAAqB,IAAI;IACzB,GAAG,IAAI;IAEP,mCAAmC,IAAI;IACvC,wBAAwB,IAAI;CAC7B;AAED,oBAAY,SAAS;IACnB,IAAI,IAAI;IACR,WAAW,IAAI;IACf,IAAI,IAAI;CAMT;AAED,oBAAY,aAAa;IACvB,mBAAmB,IAAI;IACvB,SAAS,IAAI;IAEb,iBAAiB,IAAI;CACtB;AAED,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;EA6BZ,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsDhB,CAAC;AAEX,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CardTypeLabel = exports.CardGroup = exports.CardGroupEnum = exports.CardState = exports.CardType = void 0;
4
+ const Role_1 = require("./Role");
4
5
  var CardType;
5
6
  (function (CardType) {
6
7
  CardType[CardType["BALANCE_SHEET"] = 1] = "BALANCE_SHEET";
@@ -10,6 +11,8 @@ var CardType;
10
11
  CardType[CardType["BALANCE_SHEET_EXPRESS"] = 5] = "BALANCE_SHEET_EXPRESS";
11
12
  CardType[CardType["VAT"] = 6] = "VAT";
12
13
  // REINFORCED_CHECKLIST = 7,
14
+ CardType[CardType["CHECK_BALANCE_ANNOTATION_NEW_CLIENT"] = 8] = "CHECK_BALANCE_ANNOTATION_NEW_CLIENT";
15
+ CardType[CardType["CHECK_BALANCE_ANNOTATION"] = 9] = "CHECK_BALANCE_ANNOTATION";
13
16
  })(CardType = exports.CardType || (exports.CardType = {}));
14
17
  var CardState;
15
18
  (function (CardState) {
@@ -27,26 +30,37 @@ var CardGroupEnum;
27
30
  CardGroupEnum[CardGroupEnum["BALANCE_SHEET_GROUP"] = 1] = "BALANCE_SHEET_GROUP";
28
31
  CardGroupEnum[CardGroupEnum["VAT_GROUP"] = 2] = "VAT_GROUP";
29
32
  // REINFORCED_CHECKLIST_GROUP = 3,
33
+ CardGroupEnum[CardGroupEnum["ACCEPTATION_GROUP"] = 4] = "ACCEPTATION_GROUP";
30
34
  })(CardGroupEnum = exports.CardGroupEnum || (exports.CardGroupEnum = {}));
31
35
  exports.CardGroup = [
32
36
  {
33
37
  id: CardGroupEnum.BALANCE_SHEET_GROUP,
34
38
  label: 'Bilans',
35
39
  types: [CardType.BALANCE_SHEET, CardType.BALANCE_SHEET_INTERMEDIATE, CardType.BALANCE_SHEET_PREVISIONAL, CardType.BALANCE_SHEET_LIQUIDATION, CardType.BALANCE_SHEET_EXPRESS],
40
+ roles: [Role_1.Role.FRONT_OFFICE],
36
41
  maxByDay: 3,
37
42
  },
38
43
  {
39
44
  id: CardGroupEnum.VAT_GROUP,
40
45
  label: 'Déclarations',
41
46
  types: [CardType.VAT],
47
+ roles: [Role_1.Role.FRONT_OFFICE],
42
48
  maxByDay: 6,
43
49
  },
44
50
  // {
45
51
  // id: CardGroupEnum.REINFORCED_CHECKLIST_GROUP,
46
52
  // label: 'Checklist',
47
53
  // types: [CardType.REINFORCED_CHECKLIST],
54
+ // roles: [Role.FRONT_OFFICE],
48
55
  // maxByDay: 6,
49
56
  // },
57
+ {
58
+ id: CardGroupEnum.ACCEPTATION_GROUP,
59
+ label: 'Contrôle solde bancaire & annotations',
60
+ types: [CardType.CHECK_BALANCE_ANNOTATION_NEW_CLIENT, CardType.CHECK_BALANCE_ANNOTATION],
61
+ roles: [Role_1.Role.DATA_OFFICER],
62
+ maxByDay: 25,
63
+ },
50
64
  ];
51
65
  exports.CardTypeLabel = [
52
66
  {
@@ -90,5 +104,17 @@ exports.CardTypeLabel = [
90
104
  // label: 'Checklist',
91
105
  // groupId: CardGroupEnum.REINFORCED_CHECKLIST_GROUP,
92
106
  // },
107
+ {
108
+ id: CardType.CHECK_BALANCE_ANNOTATION_NEW_CLIENT,
109
+ label: 'Contrôle solde bancaire & mise en place annotation nouveau client',
110
+ refLabel: 'LABNC',
111
+ groupId: CardGroupEnum.ACCEPTATION_GROUP,
112
+ },
113
+ {
114
+ id: CardType.CHECK_BALANCE_ANNOTATION,
115
+ label: 'Contrôle solde bancaire & contrôle annotations client',
116
+ refLabel: 'LABC',
117
+ groupId: CardGroupEnum.ACCEPTATION_GROUP,
118
+ },
93
119
  ];
94
120
  //# sourceMappingURL=Card.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Card.js","sourceRoot":"","sources":["../../../../ts/types/Enum/Card.ts"],"names":[],"mappings":";;;AAAA,IAAY,QAQX;AARD,WAAY,QAAQ;IAClB,yDAAiB,CAAA;IACjB,mFAA8B,CAAA;IAC9B,iFAA6B,CAAA;IAC7B,iFAA6B,CAAA;IAC7B,yEAAyB,CAAA;IACzB,qCAAO,CAAA;IACP,4BAA4B;AAC9B,CAAC,EARW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAQnB;AAED,IAAY,SASX;AATD,WAAY,SAAS;IACnB,yCAAQ,CAAA;IACR,uDAAe,CAAA;IACf,yCAAQ,CAAA;IACR,iDAAiD;IACjD,qEAAqE;IACrE,qJAAqJ;IACrJ,6FAA6F;IAC7F,gEAAgE;AAClE,CAAC,EATW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QASpB;AAED,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,+EAAuB,CAAA;IACvB,2DAAa,CAAA;IACb,kCAAkC;AACpC,CAAC,EAJW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAIxB;AAEY,QAAA,SAAS,GAAG;IACvB;QACE,EAAE,EAAE,aAAa,CAAC,mBAAmB;QACrC,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,0BAA0B,EAAE,QAAQ,CAAC,yBAAyB,EAAE,QAAQ,CAAC,yBAAyB,EAAE,QAAQ,CAAC,qBAAqB,CAAe;QAC1L,QAAQ,EAAE,CAAC;KACZ;IACD;QACE,EAAE,EAAE,aAAa,CAAC,SAAS;QAC3B,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAe;QACnC,QAAQ,EAAE,CAAC;KACZ;IACD,IAAI;IACJ,kDAAkD;IAClD,wBAAwB;IACxB,4CAA4C;IAC5C,iBAAiB;IACjB,KAAK;CACG,CAAC;AAEE,QAAA,aAAa,GAAG;IAC3B;QACE,EAAE,EAAE,QAAQ,CAAC,aAAa;QAC1B,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,GAAG;QACb,OAAO,EAAE,aAAa,CAAC,mBAAmB;KAC3C;IACD;QACE,EAAE,EAAE,QAAQ,CAAC,0BAA0B;QACvC,KAAK,EAAE,cAAc;QACrB,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,aAAa,CAAC,mBAAmB;KAC3C;IACD;QACE,EAAE,EAAE,QAAQ,CAAC,yBAAyB;QACtC,KAAK,EAAE,cAAc;QACrB,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,aAAa,CAAC,mBAAmB;KAC3C;IACD;QACE,EAAE,EAAE,QAAQ,CAAC,yBAAyB;QACtC,KAAK,EAAE,eAAe;QACtB,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,aAAa,CAAC,mBAAmB;KAC3C;IACD;QACE,EAAE,EAAE,QAAQ,CAAC,qBAAqB;QAClC,KAAK,EAAE,eAAe;QACtB,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,aAAa,CAAC,mBAAmB;KAC3C;IACD;QACE,EAAE,EAAE,QAAQ,CAAC,GAAG;QAChB,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,aAAa,CAAC,SAAS;KACjC;IACD,IAAI;IACJ,uCAAuC;IACvC,wBAAwB;IACxB,uDAAuD;IACvD,KAAK;CACG,CAAC","sourcesContent":["export enum CardType {\n BALANCE_SHEET = 1,\n BALANCE_SHEET_INTERMEDIATE = 2,\n BALANCE_SHEET_PREVISIONAL = 3,\n BALANCE_SHEET_LIQUIDATION = 4,\n BALANCE_SHEET_EXPRESS = 5,\n VAT = 6,\n // REINFORCED_CHECKLIST = 7,\n}\n\nexport enum CardState {\n TODO = 1,\n IN_PROGRESS = 2,\n DONE = 3,\n // ETAT \"Calculer\" pour le front mais pas en base\n // - Non Fait => si date passé et tjs dans l'état A faire ou En cours\n // - Non Terminée => Sélectionable si l'état est en cours et qu'on arrive à la fin de journée pour reportée. Et passe donc en A faire un jour suivant\n // - Reportée => Toutes les cards avec au moins 2 history et dans l'était Todo ou In progress\n // - Non Plannifiable => Toutes les cards A faire non plannifiée\n}\n\nexport enum CardGroupEnum {\n BALANCE_SHEET_GROUP = 1,\n VAT_GROUP = 2,\n // REINFORCED_CHECKLIST_GROUP = 3,\n}\n\nexport const CardGroup = [\n {\n id: CardGroupEnum.BALANCE_SHEET_GROUP,\n label: 'Bilans',\n types: [CardType.BALANCE_SHEET, CardType.BALANCE_SHEET_INTERMEDIATE, CardType.BALANCE_SHEET_PREVISIONAL, CardType.BALANCE_SHEET_LIQUIDATION, CardType.BALANCE_SHEET_EXPRESS] as CardType[],\n maxByDay: 3,\n },\n {\n id: CardGroupEnum.VAT_GROUP,\n label: 'Déclarations',\n types: [CardType.VAT] as CardType[],\n maxByDay: 6,\n },\n // {\n // id: CardGroupEnum.REINFORCED_CHECKLIST_GROUP,\n // label: 'Checklist',\n // types: [CardType.REINFORCED_CHECKLIST],\n // maxByDay: 6,\n // },\n] as const;\n\nexport const CardTypeLabel = [\n {\n id: CardType.BALANCE_SHEET,\n label: 'Bilan',\n refLabel: 'B',\n groupId: CardGroupEnum.BALANCE_SHEET_GROUP,\n },\n {\n id: CardType.BALANCE_SHEET_INTERMEDIATE,\n label: 'Bilan inter.',\n refLabel: 'BI',\n groupId: CardGroupEnum.BALANCE_SHEET_GROUP,\n },\n {\n id: CardType.BALANCE_SHEET_PREVISIONAL,\n label: 'Bilan prévi.',\n refLabel: 'BP',\n groupId: CardGroupEnum.BALANCE_SHEET_GROUP,\n },\n {\n id: CardType.BALANCE_SHEET_LIQUIDATION,\n label: 'Bilan liquid.',\n refLabel: 'BL',\n groupId: CardGroupEnum.BALANCE_SHEET_GROUP,\n },\n {\n id: CardType.BALANCE_SHEET_EXPRESS,\n label: 'Bilan express',\n refLabel: 'BE',\n groupId: CardGroupEnum.BALANCE_SHEET_GROUP,\n },\n {\n id: CardType.VAT,\n label: 'TVA',\n refLabel: 'TVA',\n groupId: CardGroupEnum.VAT_GROUP,\n },\n // {\n // id: CardType.REINFORCED_CHECKLIST,\n // label: 'Checklist',\n // groupId: CardGroupEnum.REINFORCED_CHECKLIST_GROUP,\n // },\n] as const;\n\nexport interface UserCardsStats {\n idType: CardType;\n nbTodo: number;\n nbDone: number;\n nbInProgress: number;\n nbNotDone: number;\n nbPostponed: number;\n}\n\nexport interface UserCardsStatsGroup {\n idGroup: CardGroupEnum;\n totalTodo: number;\n totalDone: number;\n totalInProgress: number;\n totalNotDone: number;\n totalPostponed: number;\n details: UserCardsStats[];\n}"]}
1
+ {"version":3,"file":"Card.js","sourceRoot":"","sources":["../../../../ts/types/Enum/Card.ts"],"names":[],"mappings":"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","sourcesContent":["import { Role } from './Role';\n\nexport enum CardType {\n BALANCE_SHEET = 1,\n BALANCE_SHEET_INTERMEDIATE = 2,\n BALANCE_SHEET_PREVISIONAL = 3,\n BALANCE_SHEET_LIQUIDATION = 4,\n BALANCE_SHEET_EXPRESS = 5,\n VAT = 6,\n // REINFORCED_CHECKLIST = 7,\n CHECK_BALANCE_ANNOTATION_NEW_CLIENT = 8,\n CHECK_BALANCE_ANNOTATION = 9,\n}\n\nexport enum CardState {\n TODO = 1,\n IN_PROGRESS = 2,\n DONE = 3,\n // ETAT \"Calculer\" pour le front mais pas en base\n // - Non Fait => si date passé et tjs dans l'état A faire ou En cours\n // - Non Terminée => Sélectionable si l'état est en cours et qu'on arrive à la fin de journée pour reportée. Et passe donc en A faire un jour suivant\n // - Reportée => Toutes les cards avec au moins 2 history et dans l'était Todo ou In progress\n // - Non Plannifiable => Toutes les cards A faire non plannifiée\n}\n\nexport enum CardGroupEnum {\n BALANCE_SHEET_GROUP = 1,\n VAT_GROUP = 2,\n // REINFORCED_CHECKLIST_GROUP = 3,\n ACCEPTATION_GROUP = 4,\n}\n\nexport const CardGroup = [\n {\n id: CardGroupEnum.BALANCE_SHEET_GROUP,\n label: 'Bilans',\n types: [CardType.BALANCE_SHEET, CardType.BALANCE_SHEET_INTERMEDIATE, CardType.BALANCE_SHEET_PREVISIONAL, CardType.BALANCE_SHEET_LIQUIDATION, CardType.BALANCE_SHEET_EXPRESS] as CardType[],\n roles: [Role.FRONT_OFFICE],\n maxByDay: 3,\n },\n {\n id: CardGroupEnum.VAT_GROUP,\n label: 'Déclarations',\n types: [CardType.VAT] as CardType[],\n roles: [Role.FRONT_OFFICE],\n maxByDay: 6,\n },\n // {\n // id: CardGroupEnum.REINFORCED_CHECKLIST_GROUP,\n // label: 'Checklist',\n // types: [CardType.REINFORCED_CHECKLIST],\n // roles: [Role.FRONT_OFFICE],\n // maxByDay: 6,\n // },\n {\n id: CardGroupEnum.ACCEPTATION_GROUP,\n label: 'Contrôle solde bancaire & annotations',\n types: [CardType.CHECK_BALANCE_ANNOTATION_NEW_CLIENT, CardType.CHECK_BALANCE_ANNOTATION] as CardType[],\n roles: [Role.DATA_OFFICER],\n maxByDay: 25,\n },\n] as const;\n\nexport const CardTypeLabel = [\n {\n id: CardType.BALANCE_SHEET,\n label: 'Bilan',\n refLabel: 'B',\n groupId: CardGroupEnum.BALANCE_SHEET_GROUP,\n },\n {\n id: CardType.BALANCE_SHEET_INTERMEDIATE,\n label: 'Bilan inter.',\n refLabel: 'BI',\n groupId: CardGroupEnum.BALANCE_SHEET_GROUP,\n },\n {\n id: CardType.BALANCE_SHEET_PREVISIONAL,\n label: 'Bilan prévi.',\n refLabel: 'BP',\n groupId: CardGroupEnum.BALANCE_SHEET_GROUP,\n },\n {\n id: CardType.BALANCE_SHEET_LIQUIDATION,\n label: 'Bilan liquid.',\n refLabel: 'BL',\n groupId: CardGroupEnum.BALANCE_SHEET_GROUP,\n },\n {\n id: CardType.BALANCE_SHEET_EXPRESS,\n label: 'Bilan express',\n refLabel: 'BE',\n groupId: CardGroupEnum.BALANCE_SHEET_GROUP,\n },\n {\n id: CardType.VAT,\n label: 'TVA',\n refLabel: 'TVA',\n groupId: CardGroupEnum.VAT_GROUP,\n },\n // {\n // id: CardType.REINFORCED_CHECKLIST,\n // label: 'Checklist',\n // groupId: CardGroupEnum.REINFORCED_CHECKLIST_GROUP,\n // },\n {\n id: CardType.CHECK_BALANCE_ANNOTATION_NEW_CLIENT,\n label: 'Contrôle solde bancaire & mise en place annotation nouveau client',\n refLabel: 'LABNC',\n groupId: CardGroupEnum.ACCEPTATION_GROUP,\n },\n {\n id: CardType.CHECK_BALANCE_ANNOTATION,\n label: 'Contrôle solde bancaire & contrôle annotations client',\n refLabel: 'LABC',\n groupId: CardGroupEnum.ACCEPTATION_GROUP,\n },\n] as const;\n\nexport interface UserCardsStats {\n idType: CardType;\n nbTodo: number;\n nbDone: number;\n nbInProgress: number;\n nbNotDone: number;\n nbPostponed: number;\n}\n\nexport interface UserCardsStatsGroup {\n idGroup: CardGroupEnum;\n totalTodo: number;\n totalDone: number;\n totalInProgress: number;\n totalNotDone: number;\n totalPostponed: number;\n details: UserCardsStats[];\n}"]}
@@ -19,6 +19,7 @@ export interface ParamsForPaymentsAuto {
19
19
  }
20
20
  export interface PaymentAuto {
21
21
  amount: number;
22
+ isPaid?: boolean;
22
23
  datePayment: Date;
23
24
  idPrestation: number;
24
25
  idPaymentMethod: number;
@@ -1 +1 @@
1
- {"version":3,"file":"Util.d.ts","sourceRoot":"","sources":["../../../../../../ts/types/Interface/api/payment/Util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAExD,MAAM,WAAW,gCAAgC;IAC/C,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,IAAI,CAAC;IACd,0BAA0B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,WAAW,EAAE,MAAM,CAAA;CACpB;AACD,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,+BAA+B,EAAE,IAAI,CAAC;IACtC,UAAU,EAAE,IAAI,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,eAAe,CAAC;IAChC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,0BAA0B,EAAE,MAAM,CAAC;IACnC,oCAAoC,EAAE,gCAAgC,EAAE,CAAC;IACzE,eAAe,EAAE,WAAW,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,IAAI,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,IAAI,CAAC;CACnB"}
1
+ {"version":3,"file":"Util.d.ts","sourceRoot":"","sources":["../../../../../../ts/types/Interface/api/payment/Util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAExD,MAAM,WAAW,gCAAgC;IAC/C,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,IAAI,CAAC;IACd,0BAA0B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,WAAW,EAAE,MAAM,CAAA;CACpB;AACD,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,+BAA+B,EAAE,IAAI,CAAC;IACtC,UAAU,EAAE,IAAI,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,eAAe,CAAC;IAChC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,0BAA0B,EAAE,MAAM,CAAC;IACnC,oCAAoC,EAAE,gCAAgC,EAAE,CAAC;IACzE,eAAe,EAAE,WAAW,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,IAAI,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,IAAI,CAAC;CACnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"Util.js","sourceRoot":"","sources":["../../../../../../ts/types/Interface/api/payment/Util.ts"],"names":[],"mappings":"","sourcesContent":["import { IPrestationList, IRegulation } from '../../..';\n\nexport interface PartialExercicePrestationExpress {\n startDate: Date;\n endDate: Date;\n countExpressMonthlyPayment: number | null; // if null, non express | if not null, express\n totalAmount: number\n}\nexport interface ParamsForPaymentsAuto {\n idTypeBrand: number;\n firstExerciceNonExpresssEndDate: Date;\n goToClient: Date;\n idPrestation: number;\n idVat: number;\n prestationList: IPrestationList;\n yearlyAmountNonExpress: number;\n nextYearlyAmountNonExpress: number;\n listPartialExercicePrestationExpress: PartialExercicePrestationExpress[];\n listRegulations: IRegulation[];\n}\n\nexport interface PaymentAuto {\n amount: number;\n datePayment: Date;\n idPrestation: number;\n idPaymentMethod: number;\n closingDate: Date;\n}"]}
1
+ {"version":3,"file":"Util.js","sourceRoot":"","sources":["../../../../../../ts/types/Interface/api/payment/Util.ts"],"names":[],"mappings":"","sourcesContent":["import { IPrestationList, IRegulation } from '../../..';\n\nexport interface PartialExercicePrestationExpress {\n startDate: Date;\n endDate: Date;\n countExpressMonthlyPayment: number | null; // if null, non express | if not null, express\n totalAmount: number\n}\nexport interface ParamsForPaymentsAuto {\n idTypeBrand: number;\n firstExerciceNonExpresssEndDate: Date;\n goToClient: Date;\n idPrestation: number;\n idVat: number;\n prestationList: IPrestationList;\n yearlyAmountNonExpress: number;\n nextYearlyAmountNonExpress: number;\n listPartialExercicePrestationExpress: PartialExercicePrestationExpress[];\n listRegulations: IRegulation[];\n}\n\nexport interface PaymentAuto {\n amount: number;\n isPaid?: boolean;\n datePayment: Date;\n idPrestation: number;\n idPaymentMethod: number;\n closingDate: Date;\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;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,qBAAqB,WAAY,qBAAqB,KAAE,WAAW,EAmKxE,CAAC;AAEF,OAAO,EACL,0BAA0B,EAAE,qBAAqB,GAClD,CAAC"}
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;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,qBAAqB,WAAY,qBAAqB,KAAE,WAAW,EAoKxE,CAAC;AAEF,OAAO,EACL,0BAA0B,EAAE,qBAAqB,GAClD,CAAC"}
@@ -98,6 +98,7 @@ const calculatePaymentsAuto = (params) => {
98
98
  if (sumRegulations) {
99
99
  listPayments.push({
100
100
  amount: sumRegulations,
101
+ isPaid: true,
101
102
  datePayment: dayjs().toDate(),
102
103
  idPrestation,
103
104
  idPaymentMethod: types_1.PaymentMethod.DIRECT_DEBIT.id,
@@ -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 { 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 {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 * @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, firstExerciceNonExpresssEndDate, idPrestation, prestationList, idVat, yearlyAmountNonExpress, nextYearlyAmountNonExpress, listPartialExercicePrestationExpress, listRegulations } = params;\n const 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 let isApplicationAlreadyPaid = false;\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\n if (prestationList?.isCatalog || !prestationList?.isComptable) throw new Error('Ce type de prestation ne correspond pas aux conditions attendues.');\n // if (!listRegulations?.length) throw new Error('List of regulations can not be empty');\n if (listPartialExercicePrestationExpress.length && listPartialExercicePrestationExpress?.some((ep: PartialExercicePrestationExpress) => !ep?.startDate)) throw new Error('Start date of some exercice are missing');\n if (!listRegulations?.every((r: IRegulation) => !!r?.amount || !!r?.amountUsed)) throw new Error('Amount and amountUsed are missing for regulations');\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 sumRegulations = listRegulations.reduce((acc: number, r:IRegulation) => acc + r.amount - r.amountUsed, 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 //On ajoute un paiement initial correspondant à la somme des régulations\n if (sumRegulations) {\n listPayments.push({\n amount:sumRegulations, //TTC\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: PaymentMethod.DIRECT_DEBIT.id,\n closingDate: listPartialExercicePrestationExpress?.length ? listPartialExercicePrestationExpress[0].endDate : firstExerciceNonExpresssEndDate,\n });\n }\n \n // =========================\n // EXPRESS\n // =========================\n listPartialExercicePrestationExpress.forEach((exercicePrestation:PartialExercicePrestationExpress, indexEP: number) => {\n remainingAmount += !priceWithTaxesIncluded \n ? getTaxesIncludedAmount(exercicePrestation.totalAmount, idVat) \n : exercicePrestation.totalAmount; //TTC\n //Si le premier règlement couvre le coût de cet exercicePrestation, on passe au suivant\n if (remainingAmount <= 0) return;\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 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 //On génère un seul exercices plein, non express\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 = yearlyAmountNonExpress;\n remainingAmount += priceWithTaxesIncluded ? exoAmount : getTaxesIncludedAmount(exoAmount, idVat);\n\n let remainingAmountByExercicePrestation = remainingAmount;\n let 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\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 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 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 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 || !isApplicationAlreadyPaid) {\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 isApplicationAlreadyPaid = true;\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 { 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 {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 * @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, firstExerciceNonExpresssEndDate, idPrestation, prestationList, idVat, yearlyAmountNonExpress, nextYearlyAmountNonExpress, listPartialExercicePrestationExpress, listRegulations } = params;\n const 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 let isApplicationAlreadyPaid = false;\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\n if (prestationList?.isCatalog || !prestationList?.isComptable) throw new Error('Ce type de prestation ne correspond pas aux conditions attendues.');\n // if (!listRegulations?.length) throw new Error('List of regulations can not be empty');\n if (listPartialExercicePrestationExpress.length && listPartialExercicePrestationExpress?.some((ep: PartialExercicePrestationExpress) => !ep?.startDate)) throw new Error('Start date of some exercice are missing');\n if (!listRegulations?.every((r: IRegulation) => !!r?.amount || !!r?.amountUsed)) throw new Error('Amount and amountUsed are missing for regulations');\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 sumRegulations = listRegulations.reduce((acc: number, r:IRegulation) => acc + r.amount - r.amountUsed, 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 //On ajoute un paiement initial correspondant à la somme des régulations\n if (sumRegulations) {\n listPayments.push({\n amount:sumRegulations, //TTC\n isPaid: true,\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: PaymentMethod.DIRECT_DEBIT.id,\n closingDate: listPartialExercicePrestationExpress?.length ? listPartialExercicePrestationExpress[0].endDate : firstExerciceNonExpresssEndDate,\n });\n }\n \n // =========================\n // EXPRESS\n // =========================\n listPartialExercicePrestationExpress.forEach((exercicePrestation:PartialExercicePrestationExpress, indexEP: number) => {\n remainingAmount += !priceWithTaxesIncluded \n ? getTaxesIncludedAmount(exercicePrestation.totalAmount, idVat) \n : exercicePrestation.totalAmount; //TTC\n //Si le premier règlement couvre le coût de cet exercicePrestation, on passe au suivant\n if (remainingAmount <= 0) return;\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 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 //On génère un seul exercices plein, non express\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 = yearlyAmountNonExpress;\n remainingAmount += priceWithTaxesIncluded ? exoAmount : getTaxesIncludedAmount(exoAmount, idVat);\n\n let remainingAmountByExercicePrestation = remainingAmount;\n let 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\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 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 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 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 || !isApplicationAlreadyPaid) {\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 isApplicationAlreadyPaid = true;\n }\n\n return listPayments;\n};\n\nexport {\n groupPaymentsByServiceType, calculatePaymentsAuto,\n};"]}
@@ -1,10 +1,13 @@
1
+ import { Role } from './Role';
1
2
  export declare enum CardType {
2
3
  BALANCE_SHEET = 1,
3
4
  BALANCE_SHEET_INTERMEDIATE = 2,
4
5
  BALANCE_SHEET_PREVISIONAL = 3,
5
6
  BALANCE_SHEET_LIQUIDATION = 4,
6
7
  BALANCE_SHEET_EXPRESS = 5,
7
- VAT = 6
8
+ VAT = 6,
9
+ CHECK_BALANCE_ANNOTATION_NEW_CLIENT = 8,
10
+ CHECK_BALANCE_ANNOTATION = 9
8
11
  }
9
12
  export declare enum CardState {
10
13
  TODO = 1,
@@ -13,18 +16,27 @@ export declare enum CardState {
13
16
  }
14
17
  export declare enum CardGroupEnum {
15
18
  BALANCE_SHEET_GROUP = 1,
16
- VAT_GROUP = 2
19
+ VAT_GROUP = 2,
20
+ ACCEPTATION_GROUP = 4
17
21
  }
18
22
  export declare const CardGroup: readonly [{
19
23
  readonly id: CardGroupEnum.BALANCE_SHEET_GROUP;
20
24
  readonly label: "Bilans";
21
25
  readonly types: CardType[];
26
+ readonly roles: readonly [Role.FRONT_OFFICE];
22
27
  readonly maxByDay: 3;
23
28
  }, {
24
29
  readonly id: CardGroupEnum.VAT_GROUP;
25
30
  readonly label: "Déclarations";
26
31
  readonly types: CardType[];
32
+ readonly roles: readonly [Role.FRONT_OFFICE];
27
33
  readonly maxByDay: 6;
34
+ }, {
35
+ readonly id: CardGroupEnum.ACCEPTATION_GROUP;
36
+ readonly label: "Contrôle solde bancaire & annotations";
37
+ readonly types: CardType[];
38
+ readonly roles: readonly [Role.DATA_OFFICER];
39
+ readonly maxByDay: 25;
28
40
  }];
29
41
  export declare const CardTypeLabel: readonly [{
30
42
  readonly id: CardType.BALANCE_SHEET;
@@ -56,6 +68,16 @@ export declare const CardTypeLabel: readonly [{
56
68
  readonly label: "TVA";
57
69
  readonly refLabel: "TVA";
58
70
  readonly groupId: CardGroupEnum.VAT_GROUP;
71
+ }, {
72
+ readonly id: CardType.CHECK_BALANCE_ANNOTATION_NEW_CLIENT;
73
+ readonly label: "Contrôle solde bancaire & mise en place annotation nouveau client";
74
+ readonly refLabel: "LABNC";
75
+ readonly groupId: CardGroupEnum.ACCEPTATION_GROUP;
76
+ }, {
77
+ readonly id: CardType.CHECK_BALANCE_ANNOTATION;
78
+ readonly label: "Contrôle solde bancaire & contrôle annotations client";
79
+ readonly refLabel: "LABC";
80
+ readonly groupId: CardGroupEnum.ACCEPTATION_GROUP;
59
81
  }];
60
82
  export interface UserCardsStats {
61
83
  idType: CardType;
@@ -1 +1 @@
1
- {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../../ts/types/Enum/Card.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,aAAa,IAAI;IACjB,0BAA0B,IAAI;IAC9B,yBAAyB,IAAI;IAC7B,yBAAyB,IAAI;IAC7B,qBAAqB,IAAI;IACzB,GAAG,IAAI;CAER;AAED,oBAAY,SAAS;IACnB,IAAI,IAAI;IACR,WAAW,IAAI;IACf,IAAI,IAAI;CAMT;AAED,oBAAY,aAAa;IACvB,mBAAmB,IAAI;IACvB,SAAS,IAAI;CAEd;AAED,eAAO,MAAM,SAAS;;;;;;;;;;EAmBZ,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0ChB,CAAC;AAEX,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B"}
1
+ {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../../ts/types/Enum/Card.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,oBAAY,QAAQ;IAClB,aAAa,IAAI;IACjB,0BAA0B,IAAI;IAC9B,yBAAyB,IAAI;IAC7B,yBAAyB,IAAI;IAC7B,qBAAqB,IAAI;IACzB,GAAG,IAAI;IAEP,mCAAmC,IAAI;IACvC,wBAAwB,IAAI;CAC7B;AAED,oBAAY,SAAS;IACnB,IAAI,IAAI;IACR,WAAW,IAAI;IACf,IAAI,IAAI;CAMT;AAED,oBAAY,aAAa;IACvB,mBAAmB,IAAI;IACvB,SAAS,IAAI;IAEb,iBAAiB,IAAI;CACtB;AAED,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;EA6BZ,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsDhB,CAAC;AAEX,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B"}
@@ -1,3 +1,4 @@
1
+ import { Role } from './Role';
1
2
  export var CardType;
2
3
  (function (CardType) {
3
4
  CardType[CardType["BALANCE_SHEET"] = 1] = "BALANCE_SHEET";
@@ -7,6 +8,8 @@ export var CardType;
7
8
  CardType[CardType["BALANCE_SHEET_EXPRESS"] = 5] = "BALANCE_SHEET_EXPRESS";
8
9
  CardType[CardType["VAT"] = 6] = "VAT";
9
10
  // REINFORCED_CHECKLIST = 7,
11
+ CardType[CardType["CHECK_BALANCE_ANNOTATION_NEW_CLIENT"] = 8] = "CHECK_BALANCE_ANNOTATION_NEW_CLIENT";
12
+ CardType[CardType["CHECK_BALANCE_ANNOTATION"] = 9] = "CHECK_BALANCE_ANNOTATION";
10
13
  })(CardType || (CardType = {}));
11
14
  export var CardState;
12
15
  (function (CardState) {
@@ -24,26 +27,37 @@ export var CardGroupEnum;
24
27
  CardGroupEnum[CardGroupEnum["BALANCE_SHEET_GROUP"] = 1] = "BALANCE_SHEET_GROUP";
25
28
  CardGroupEnum[CardGroupEnum["VAT_GROUP"] = 2] = "VAT_GROUP";
26
29
  // REINFORCED_CHECKLIST_GROUP = 3,
30
+ CardGroupEnum[CardGroupEnum["ACCEPTATION_GROUP"] = 4] = "ACCEPTATION_GROUP";
27
31
  })(CardGroupEnum || (CardGroupEnum = {}));
28
32
  export const CardGroup = [
29
33
  {
30
34
  id: CardGroupEnum.BALANCE_SHEET_GROUP,
31
35
  label: 'Bilans',
32
36
  types: [CardType.BALANCE_SHEET, CardType.BALANCE_SHEET_INTERMEDIATE, CardType.BALANCE_SHEET_PREVISIONAL, CardType.BALANCE_SHEET_LIQUIDATION, CardType.BALANCE_SHEET_EXPRESS],
37
+ roles: [Role.FRONT_OFFICE],
33
38
  maxByDay: 3,
34
39
  },
35
40
  {
36
41
  id: CardGroupEnum.VAT_GROUP,
37
42
  label: 'Déclarations',
38
43
  types: [CardType.VAT],
44
+ roles: [Role.FRONT_OFFICE],
39
45
  maxByDay: 6,
40
46
  },
41
47
  // {
42
48
  // id: CardGroupEnum.REINFORCED_CHECKLIST_GROUP,
43
49
  // label: 'Checklist',
44
50
  // types: [CardType.REINFORCED_CHECKLIST],
51
+ // roles: [Role.FRONT_OFFICE],
45
52
  // maxByDay: 6,
46
53
  // },
54
+ {
55
+ id: CardGroupEnum.ACCEPTATION_GROUP,
56
+ label: 'Contrôle solde bancaire & annotations',
57
+ types: [CardType.CHECK_BALANCE_ANNOTATION_NEW_CLIENT, CardType.CHECK_BALANCE_ANNOTATION],
58
+ roles: [Role.DATA_OFFICER],
59
+ maxByDay: 25,
60
+ },
47
61
  ];
48
62
  export const CardTypeLabel = [
49
63
  {
@@ -87,5 +101,17 @@ export const CardTypeLabel = [
87
101
  // label: 'Checklist',
88
102
  // groupId: CardGroupEnum.REINFORCED_CHECKLIST_GROUP,
89
103
  // },
104
+ {
105
+ id: CardType.CHECK_BALANCE_ANNOTATION_NEW_CLIENT,
106
+ label: 'Contrôle solde bancaire & mise en place annotation nouveau client',
107
+ refLabel: 'LABNC',
108
+ groupId: CardGroupEnum.ACCEPTATION_GROUP,
109
+ },
110
+ {
111
+ id: CardType.CHECK_BALANCE_ANNOTATION,
112
+ label: 'Contrôle solde bancaire & contrôle annotations client',
113
+ refLabel: 'LABC',
114
+ groupId: CardGroupEnum.ACCEPTATION_GROUP,
115
+ },
90
116
  ];
91
117
  //# sourceMappingURL=Card.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Card.js","sourceRoot":"","sources":["../../../../ts/types/Enum/Card.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,QAQX;AARD,WAAY,QAAQ;IAClB,yDAAiB,CAAA;IACjB,mFAA8B,CAAA;IAC9B,iFAA6B,CAAA;IAC7B,iFAA6B,CAAA;IAC7B,yEAAyB,CAAA;IACzB,qCAAO,CAAA;IACP,4BAA4B;AAC9B,CAAC,EARW,QAAQ,KAAR,QAAQ,QAQnB;AAED,MAAM,CAAN,IAAY,SASX;AATD,WAAY,SAAS;IACnB,yCAAQ,CAAA;IACR,uDAAe,CAAA;IACf,yCAAQ,CAAA;IACR,iDAAiD;IACjD,qEAAqE;IACrE,qJAAqJ;IACrJ,6FAA6F;IAC7F,gEAAgE;AAClE,CAAC,EATW,SAAS,KAAT,SAAS,QASpB;AAED,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,+EAAuB,CAAA;IACvB,2DAAa,CAAA;IACb,kCAAkC;AACpC,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB;AAED,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB;QACE,EAAE,EAAE,aAAa,CAAC,mBAAmB;QACrC,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,0BAA0B,EAAE,QAAQ,CAAC,yBAAyB,EAAE,QAAQ,CAAC,yBAAyB,EAAE,QAAQ,CAAC,qBAAqB,CAAe;QAC1L,QAAQ,EAAE,CAAC;KACZ;IACD;QACE,EAAE,EAAE,aAAa,CAAC,SAAS;QAC3B,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAe;QACnC,QAAQ,EAAE,CAAC;KACZ;IACD,IAAI;IACJ,kDAAkD;IAClD,wBAAwB;IACxB,4CAA4C;IAC5C,iBAAiB;IACjB,KAAK;CACG,CAAC;AAEX,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B;QACE,EAAE,EAAE,QAAQ,CAAC,aAAa;QAC1B,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,GAAG;QACb,OAAO,EAAE,aAAa,CAAC,mBAAmB;KAC3C;IACD;QACE,EAAE,EAAE,QAAQ,CAAC,0BAA0B;QACvC,KAAK,EAAE,cAAc;QACrB,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,aAAa,CAAC,mBAAmB;KAC3C;IACD;QACE,EAAE,EAAE,QAAQ,CAAC,yBAAyB;QACtC,KAAK,EAAE,cAAc;QACrB,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,aAAa,CAAC,mBAAmB;KAC3C;IACD;QACE,EAAE,EAAE,QAAQ,CAAC,yBAAyB;QACtC,KAAK,EAAE,eAAe;QACtB,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,aAAa,CAAC,mBAAmB;KAC3C;IACD;QACE,EAAE,EAAE,QAAQ,CAAC,qBAAqB;QAClC,KAAK,EAAE,eAAe;QACtB,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,aAAa,CAAC,mBAAmB;KAC3C;IACD;QACE,EAAE,EAAE,QAAQ,CAAC,GAAG;QAChB,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,aAAa,CAAC,SAAS;KACjC;IACD,IAAI;IACJ,uCAAuC;IACvC,wBAAwB;IACxB,uDAAuD;IACvD,KAAK;CACG,CAAC","sourcesContent":["export enum CardType {\n BALANCE_SHEET = 1,\n BALANCE_SHEET_INTERMEDIATE = 2,\n BALANCE_SHEET_PREVISIONAL = 3,\n BALANCE_SHEET_LIQUIDATION = 4,\n BALANCE_SHEET_EXPRESS = 5,\n VAT = 6,\n // REINFORCED_CHECKLIST = 7,\n}\n\nexport enum CardState {\n TODO = 1,\n IN_PROGRESS = 2,\n DONE = 3,\n // ETAT \"Calculer\" pour le front mais pas en base\n // - Non Fait => si date passé et tjs dans l'état A faire ou En cours\n // - Non Terminée => Sélectionable si l'état est en cours et qu'on arrive à la fin de journée pour reportée. Et passe donc en A faire un jour suivant\n // - Reportée => Toutes les cards avec au moins 2 history et dans l'était Todo ou In progress\n // - Non Plannifiable => Toutes les cards A faire non plannifiée\n}\n\nexport enum CardGroupEnum {\n BALANCE_SHEET_GROUP = 1,\n VAT_GROUP = 2,\n // REINFORCED_CHECKLIST_GROUP = 3,\n}\n\nexport const CardGroup = [\n {\n id: CardGroupEnum.BALANCE_SHEET_GROUP,\n label: 'Bilans',\n types: [CardType.BALANCE_SHEET, CardType.BALANCE_SHEET_INTERMEDIATE, CardType.BALANCE_SHEET_PREVISIONAL, CardType.BALANCE_SHEET_LIQUIDATION, CardType.BALANCE_SHEET_EXPRESS] as CardType[],\n maxByDay: 3,\n },\n {\n id: CardGroupEnum.VAT_GROUP,\n label: 'Déclarations',\n types: [CardType.VAT] as CardType[],\n maxByDay: 6,\n },\n // {\n // id: CardGroupEnum.REINFORCED_CHECKLIST_GROUP,\n // label: 'Checklist',\n // types: [CardType.REINFORCED_CHECKLIST],\n // maxByDay: 6,\n // },\n] as const;\n\nexport const CardTypeLabel = [\n {\n id: CardType.BALANCE_SHEET,\n label: 'Bilan',\n refLabel: 'B',\n groupId: CardGroupEnum.BALANCE_SHEET_GROUP,\n },\n {\n id: CardType.BALANCE_SHEET_INTERMEDIATE,\n label: 'Bilan inter.',\n refLabel: 'BI',\n groupId: CardGroupEnum.BALANCE_SHEET_GROUP,\n },\n {\n id: CardType.BALANCE_SHEET_PREVISIONAL,\n label: 'Bilan prévi.',\n refLabel: 'BP',\n groupId: CardGroupEnum.BALANCE_SHEET_GROUP,\n },\n {\n id: CardType.BALANCE_SHEET_LIQUIDATION,\n label: 'Bilan liquid.',\n refLabel: 'BL',\n groupId: CardGroupEnum.BALANCE_SHEET_GROUP,\n },\n {\n id: CardType.BALANCE_SHEET_EXPRESS,\n label: 'Bilan express',\n refLabel: 'BE',\n groupId: CardGroupEnum.BALANCE_SHEET_GROUP,\n },\n {\n id: CardType.VAT,\n label: 'TVA',\n refLabel: 'TVA',\n groupId: CardGroupEnum.VAT_GROUP,\n },\n // {\n // id: CardType.REINFORCED_CHECKLIST,\n // label: 'Checklist',\n // groupId: CardGroupEnum.REINFORCED_CHECKLIST_GROUP,\n // },\n] as const;\n\nexport interface UserCardsStats {\n idType: CardType;\n nbTodo: number;\n nbDone: number;\n nbInProgress: number;\n nbNotDone: number;\n nbPostponed: number;\n}\n\nexport interface UserCardsStatsGroup {\n idGroup: CardGroupEnum;\n totalTodo: number;\n totalDone: number;\n totalInProgress: number;\n totalNotDone: number;\n totalPostponed: number;\n details: UserCardsStats[];\n}"]}
1
+ {"version":3,"file":"Card.js","sourceRoot":"","sources":["../../../../ts/types/Enum/Card.ts"],"names":[],"mappings":"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","sourcesContent":["import { Role } from './Role';\n\nexport enum CardType {\n BALANCE_SHEET = 1,\n BALANCE_SHEET_INTERMEDIATE = 2,\n BALANCE_SHEET_PREVISIONAL = 3,\n BALANCE_SHEET_LIQUIDATION = 4,\n BALANCE_SHEET_EXPRESS = 5,\n VAT = 6,\n // REINFORCED_CHECKLIST = 7,\n CHECK_BALANCE_ANNOTATION_NEW_CLIENT = 8,\n CHECK_BALANCE_ANNOTATION = 9,\n}\n\nexport enum CardState {\n TODO = 1,\n IN_PROGRESS = 2,\n DONE = 3,\n // ETAT \"Calculer\" pour le front mais pas en base\n // - Non Fait => si date passé et tjs dans l'état A faire ou En cours\n // - Non Terminée => Sélectionable si l'état est en cours et qu'on arrive à la fin de journée pour reportée. Et passe donc en A faire un jour suivant\n // - Reportée => Toutes les cards avec au moins 2 history et dans l'était Todo ou In progress\n // - Non Plannifiable => Toutes les cards A faire non plannifiée\n}\n\nexport enum CardGroupEnum {\n BALANCE_SHEET_GROUP = 1,\n VAT_GROUP = 2,\n // REINFORCED_CHECKLIST_GROUP = 3,\n ACCEPTATION_GROUP = 4,\n}\n\nexport const CardGroup = [\n {\n id: CardGroupEnum.BALANCE_SHEET_GROUP,\n label: 'Bilans',\n types: [CardType.BALANCE_SHEET, CardType.BALANCE_SHEET_INTERMEDIATE, CardType.BALANCE_SHEET_PREVISIONAL, CardType.BALANCE_SHEET_LIQUIDATION, CardType.BALANCE_SHEET_EXPRESS] as CardType[],\n roles: [Role.FRONT_OFFICE],\n maxByDay: 3,\n },\n {\n id: CardGroupEnum.VAT_GROUP,\n label: 'Déclarations',\n types: [CardType.VAT] as CardType[],\n roles: [Role.FRONT_OFFICE],\n maxByDay: 6,\n },\n // {\n // id: CardGroupEnum.REINFORCED_CHECKLIST_GROUP,\n // label: 'Checklist',\n // types: [CardType.REINFORCED_CHECKLIST],\n // roles: [Role.FRONT_OFFICE],\n // maxByDay: 6,\n // },\n {\n id: CardGroupEnum.ACCEPTATION_GROUP,\n label: 'Contrôle solde bancaire & annotations',\n types: [CardType.CHECK_BALANCE_ANNOTATION_NEW_CLIENT, CardType.CHECK_BALANCE_ANNOTATION] as CardType[],\n roles: [Role.DATA_OFFICER],\n maxByDay: 25,\n },\n] as const;\n\nexport const CardTypeLabel = [\n {\n id: CardType.BALANCE_SHEET,\n label: 'Bilan',\n refLabel: 'B',\n groupId: CardGroupEnum.BALANCE_SHEET_GROUP,\n },\n {\n id: CardType.BALANCE_SHEET_INTERMEDIATE,\n label: 'Bilan inter.',\n refLabel: 'BI',\n groupId: CardGroupEnum.BALANCE_SHEET_GROUP,\n },\n {\n id: CardType.BALANCE_SHEET_PREVISIONAL,\n label: 'Bilan prévi.',\n refLabel: 'BP',\n groupId: CardGroupEnum.BALANCE_SHEET_GROUP,\n },\n {\n id: CardType.BALANCE_SHEET_LIQUIDATION,\n label: 'Bilan liquid.',\n refLabel: 'BL',\n groupId: CardGroupEnum.BALANCE_SHEET_GROUP,\n },\n {\n id: CardType.BALANCE_SHEET_EXPRESS,\n label: 'Bilan express',\n refLabel: 'BE',\n groupId: CardGroupEnum.BALANCE_SHEET_GROUP,\n },\n {\n id: CardType.VAT,\n label: 'TVA',\n refLabel: 'TVA',\n groupId: CardGroupEnum.VAT_GROUP,\n },\n // {\n // id: CardType.REINFORCED_CHECKLIST,\n // label: 'Checklist',\n // groupId: CardGroupEnum.REINFORCED_CHECKLIST_GROUP,\n // },\n {\n id: CardType.CHECK_BALANCE_ANNOTATION_NEW_CLIENT,\n label: 'Contrôle solde bancaire & mise en place annotation nouveau client',\n refLabel: 'LABNC',\n groupId: CardGroupEnum.ACCEPTATION_GROUP,\n },\n {\n id: CardType.CHECK_BALANCE_ANNOTATION,\n label: 'Contrôle solde bancaire & contrôle annotations client',\n refLabel: 'LABC',\n groupId: CardGroupEnum.ACCEPTATION_GROUP,\n },\n] as const;\n\nexport interface UserCardsStats {\n idType: CardType;\n nbTodo: number;\n nbDone: number;\n nbInProgress: number;\n nbNotDone: number;\n nbPostponed: number;\n}\n\nexport interface UserCardsStatsGroup {\n idGroup: CardGroupEnum;\n totalTodo: number;\n totalDone: number;\n totalInProgress: number;\n totalNotDone: number;\n totalPostponed: number;\n details: UserCardsStats[];\n}"]}
@@ -19,6 +19,7 @@ export interface ParamsForPaymentsAuto {
19
19
  }
20
20
  export interface PaymentAuto {
21
21
  amount: number;
22
+ isPaid?: boolean;
22
23
  datePayment: Date;
23
24
  idPrestation: number;
24
25
  idPaymentMethod: number;
@@ -1 +1 @@
1
- {"version":3,"file":"Util.d.ts","sourceRoot":"","sources":["../../../../../../ts/types/Interface/api/payment/Util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAExD,MAAM,WAAW,gCAAgC;IAC/C,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,IAAI,CAAC;IACd,0BAA0B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,WAAW,EAAE,MAAM,CAAA;CACpB;AACD,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,+BAA+B,EAAE,IAAI,CAAC;IACtC,UAAU,EAAE,IAAI,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,eAAe,CAAC;IAChC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,0BAA0B,EAAE,MAAM,CAAC;IACnC,oCAAoC,EAAE,gCAAgC,EAAE,CAAC;IACzE,eAAe,EAAE,WAAW,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,IAAI,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,IAAI,CAAC;CACnB"}
1
+ {"version":3,"file":"Util.d.ts","sourceRoot":"","sources":["../../../../../../ts/types/Interface/api/payment/Util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAExD,MAAM,WAAW,gCAAgC;IAC/C,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,IAAI,CAAC;IACd,0BAA0B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,WAAW,EAAE,MAAM,CAAA;CACpB;AACD,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,+BAA+B,EAAE,IAAI,CAAC;IACtC,UAAU,EAAE,IAAI,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,eAAe,CAAC;IAChC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,0BAA0B,EAAE,MAAM,CAAC;IACnC,oCAAoC,EAAE,gCAAgC,EAAE,CAAC;IACzE,eAAe,EAAE,WAAW,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,IAAI,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,IAAI,CAAC;CACnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"Util.js","sourceRoot":"","sources":["../../../../../../ts/types/Interface/api/payment/Util.ts"],"names":[],"mappings":"","sourcesContent":["import { IPrestationList, IRegulation } from '../../..';\n\nexport interface PartialExercicePrestationExpress {\n startDate: Date;\n endDate: Date;\n countExpressMonthlyPayment: number | null; // if null, non express | if not null, express\n totalAmount: number\n}\nexport interface ParamsForPaymentsAuto {\n idTypeBrand: number;\n firstExerciceNonExpresssEndDate: Date;\n goToClient: Date;\n idPrestation: number;\n idVat: number;\n prestationList: IPrestationList;\n yearlyAmountNonExpress: number;\n nextYearlyAmountNonExpress: number;\n listPartialExercicePrestationExpress: PartialExercicePrestationExpress[];\n listRegulations: IRegulation[];\n}\n\nexport interface PaymentAuto {\n amount: number;\n datePayment: Date;\n idPrestation: number;\n idPaymentMethod: number;\n closingDate: Date;\n}"]}
1
+ {"version":3,"file":"Util.js","sourceRoot":"","sources":["../../../../../../ts/types/Interface/api/payment/Util.ts"],"names":[],"mappings":"","sourcesContent":["import { IPrestationList, IRegulation } from '../../..';\n\nexport interface PartialExercicePrestationExpress {\n startDate: Date;\n endDate: Date;\n countExpressMonthlyPayment: number | null; // if null, non express | if not null, express\n totalAmount: number\n}\nexport interface ParamsForPaymentsAuto {\n idTypeBrand: number;\n firstExerciceNonExpresssEndDate: Date;\n goToClient: Date;\n idPrestation: number;\n idVat: number;\n prestationList: IPrestationList;\n yearlyAmountNonExpress: number;\n nextYearlyAmountNonExpress: number;\n listPartialExercicePrestationExpress: PartialExercicePrestationExpress[];\n listRegulations: IRegulation[];\n}\n\nexport interface PaymentAuto {\n amount: number;\n isPaid?: boolean;\n datePayment: Date;\n idPrestation: number;\n idPaymentMethod: number;\n closingDate: Date;\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;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,qBAAqB,WAAY,qBAAqB,KAAE,WAAW,EAmKxE,CAAC;AAEF,OAAO,EACL,0BAA0B,EAAE,qBAAqB,GAClD,CAAC"}
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;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,qBAAqB,WAAY,qBAAqB,KAAE,WAAW,EAoKxE,CAAC;AAEF,OAAO,EACL,0BAA0B,EAAE,qBAAqB,GAClD,CAAC"}
@@ -111,6 +111,7 @@ const calculatePaymentsAuto = (params) => {
111
111
  if (sumRegulations) {
112
112
  listPayments.push({
113
113
  amount: sumRegulations,
114
+ isPaid: true,
114
115
  datePayment: dayjs().toDate(),
115
116
  idPrestation,
116
117
  idPaymentMethod: PaymentMethod.DIRECT_DEBIT.id,
@@ -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 { 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 {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 * @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, firstExerciceNonExpresssEndDate, idPrestation, prestationList, idVat, yearlyAmountNonExpress, nextYearlyAmountNonExpress, listPartialExercicePrestationExpress, listRegulations } = params;\n const 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 let isApplicationAlreadyPaid = false;\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\n if (prestationList?.isCatalog || !prestationList?.isComptable) throw new Error('Ce type de prestation ne correspond pas aux conditions attendues.');\n // if (!listRegulations?.length) throw new Error('List of regulations can not be empty');\n if (listPartialExercicePrestationExpress.length && listPartialExercicePrestationExpress?.some((ep: PartialExercicePrestationExpress) => !ep?.startDate)) throw new Error('Start date of some exercice are missing');\n if (!listRegulations?.every((r: IRegulation) => !!r?.amount || !!r?.amountUsed)) throw new Error('Amount and amountUsed are missing for regulations');\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 sumRegulations = listRegulations.reduce((acc: number, r:IRegulation) => acc + r.amount - r.amountUsed, 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 //On ajoute un paiement initial correspondant à la somme des régulations\n if (sumRegulations) {\n listPayments.push({\n amount:sumRegulations, //TTC\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: PaymentMethod.DIRECT_DEBIT.id,\n closingDate: listPartialExercicePrestationExpress?.length ? listPartialExercicePrestationExpress[0].endDate : firstExerciceNonExpresssEndDate,\n });\n }\n \n // =========================\n // EXPRESS\n // =========================\n listPartialExercicePrestationExpress.forEach((exercicePrestation:PartialExercicePrestationExpress, indexEP: number) => {\n remainingAmount += !priceWithTaxesIncluded \n ? getTaxesIncludedAmount(exercicePrestation.totalAmount, idVat) \n : exercicePrestation.totalAmount; //TTC\n //Si le premier règlement couvre le coût de cet exercicePrestation, on passe au suivant\n if (remainingAmount <= 0) return;\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 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 //On génère un seul exercices plein, non express\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 = yearlyAmountNonExpress;\n remainingAmount += priceWithTaxesIncluded ? exoAmount : getTaxesIncludedAmount(exoAmount, idVat);\n\n let remainingAmountByExercicePrestation = remainingAmount;\n let 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\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 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 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 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 || !isApplicationAlreadyPaid) {\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 isApplicationAlreadyPaid = true;\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":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAgD,aAAa,EAAe,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAC5H,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAO5C;;;;;;;;;GASG;AACH,MAAM,0BAA0B,GAAG,CAAC,QAAoB,EAAE,QAAoE,CAAC,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,CAAC,EAAsB,EAAE;IACzM,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,mBAAmB,EAAE,eAAe,EAAE,WAAW,IAAI,KAAK,CAAC,CAAC;IAChH,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,mBAAmB,EAAE,eAAe,EAAE,WAAW,IAAI,EAAE,EAAE,mBAAmB,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;IAC3J,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,mBAAmB,EAAE,eAAe,EAAE,WAAW,IAAI,EAAE,EAAE,mBAAmB,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;IACjK,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,mBAAmB,EAAE,eAAe,EAAE,WAAW,IAAI,CAAC,EAAE,EAAE,mBAAmB,EAAE,eAAe,EAAE,WAAW,IAAI,CAAC,EAAE,EAAE,mBAAmB,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;IAErN,MAAM,cAAc,GAAuB,EAAE,CAAC;IAC9C,IAAI,eAAe,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;QAC3D,cAAc,CAAC,IAAI,CAAC;YAClB,GAAG,eAAe,CAAC,CAAC,CAAC;YACrB,IAAI,EAAE,aAAa;YACnB,YAAY,EAAE,eAAe;SAC9B,CAAC,CAAC;KACJ;IACD,IAAI,YAAY,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;QACrD,cAAc,CAAC,IAAI,CAAC;YAClB,GAAG,YAAY,CAAC,CAAC,CAAC;YAClB,IAAI,EAAE,UAAU;YAChB,YAAY,EAAE,YAAY;SAC3B,CAAC,CAAC;KACJ;IACD,IAAI,eAAe,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;QAC3D,cAAc,CAAC,IAAI,CAAC;YAClB,GAAG,eAAe,CAAC,CAAC,CAAC;YACrB,IAAI,EAAE,aAAa;YACnB,YAAY,EAAE,eAAe;SAC9B,CAAC,CAAC;KACJ;IACD,IAAI,WAAW,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;QACnD,cAAc,CAAC,IAAI,CAAC;YAClB,GAAG,WAAW,CAAC,CAAC,CAAC;YACjB,IAAI,EAAE,SAAS;YACf,YAAY,EAAE,WAAW;SAC1B,CAAC,CAAC;KACJ;IACD,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,MAAc,EAAE,UAAgB,EAAE,WAAiB,EAAS,EAAE;IACnF,MAAM,qBAAqB,GAAG,MAAM,CAAC;IAErC,MAAM,gCAAgC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhF,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;QAClD,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,gCAAgC,CAAC;QAClG,oCAAoC;QACpC,8GAA8G;QAC9G,8DAA8D;QAC9D,oDAAoD;QACpD,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC;KAChE;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,qBAAqB,GAAG,CAAC,MAA6B,EAAgB,EAAE;IAC5E,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,+BAA+B,EAAE,YAAY,EAAE,cAAc,EAAE,KAAK,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,oCAAoC,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;IAC5N,MAAM,sBAAsB,GAAG,KAAK,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA,8BAA8B;QAC1G,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE;QACnD,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;IACtD,IAAI,wBAAwB,GAAG,KAAK,CAAC;IAErC,4EAA4E;IAC5E,gDAAgD;IAChD,IAAI,CAAC,cAAc,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,YAAY,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC;IAC/D,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC5F,MAAM,EAAE,eAAe,EAAE,sBAAsB,EAAE,GAAG,SAAS,CAAC;IAC9D,MAAM,uBAAuB,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,sBAAsB,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;IAEjI,IAAI,cAAc,EAAE,SAAS,IAAI,CAAC,cAAc,EAAE,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;IACpJ,yFAAyF;IACzF,IAAI,oCAAoC,CAAC,MAAM,IAAI,oCAAoC,EAAE,IAAI,CAAC,CAAC,EAAoC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACpN,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAc,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IAEtJ,MAAM,YAAY,GAAG,oCAAoC,CAAC,MAAM,CAAC;IACjE,MAAM,YAAY,GAAiB,EAAE,CAAC;IAEtC,gEAAgE;IAChE,MAAM,cAAc,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,CAAa,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAChH,IAAI,eAAe,GAAG,CAAC,cAAc,CAAC,CAAE,KAAK;IAC7C,IAAI,WAAW,GAAG,sBAAsB,CAAC;IAEzC,6DAA6D;IAC7D,oCAAoC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACjD,MAAM,UAAU,GAAG,CAAC,EAAE,SAAiB,CAAC;QACxC,MAAM,UAAU,GAAG,CAAC,EAAE,SAAiB,CAAC;QACxC,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,wEAAwE;IACxE,IAAI,cAAc,EAAE;QAClB,YAAY,CAAC,IAAI,CAAC;YAChB,MAAM,EAAC,cAAc;YACrB,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE;YAC7B,YAAY;YACZ,eAAe,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE;YAC9C,WAAW,EAAE,oCAAoC,EAAE,MAAM,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,+BAA+B;SAC9I,CAAC,CAAC;KACJ;IAED,4BAA4B;IAC5B,mBAAmB;IACnB,4BAA4B;IAC5B,oCAAoC,CAAC,OAAO,CAAC,CAAC,kBAAmD,EAAE,OAAe,EAAE,EAAE;QACpH,eAAe,IAAI,CAAC,sBAAsB;YACxC,CAAC,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,WAAW,EAAE,KAAK,CAAC;YAC/D,CAAC,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,KAAK;QACzC,uFAAuF;QACvF,IAAI,eAAe,IAAI,CAAC;YAAE,OAAO;QAEjC,sEAAsE;QACtE,IAAI,mCAAmC,GAAG,eAAe,CAAC,CAAC,KAAK;QAChE,IAAI,0BAA0B,GAAG,kBAAkB,EAAE,0BAA0B,IAAI,CAAC,CAAC,CAAC,KAAK;QAC3F,0KAA0K;QAC1K,IAAI,OAAO,KAAK,CAAC,IAAI,cAAc,GAAG,CAAC;YAAE,0BAA0B,IAAI,CAAC,CAAC;QAEzE,MAAM,aAAa,GAAG,mCAAmC,GAAG,0BAA0B,CAAC,CAAC,KAAK;QAC7F,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,0BAA0B,EAAE,KAAK,EAAE,EAAE;YAChE,gJAAgJ;YAChJ,8CAA8C;YAC9C,MAAM,MAAM,GAAG,KAAK,GAAG,0BAA0B,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAE,KAAK;YAE/G,YAAY,CAAC,IAAI,CAAC;gBAChB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,GAAG;gBACtC,WAAW,EAAE,WAAW;gBACxB,YAAY;gBACZ,eAAe,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE;gBAC9C,WAAW,EAAE,kBAAkB,CAAC,OAAO;aACxC,CAAC,CAAC;YACH,mCAAmC,IAAI,aAAa,CAAC;YACrD,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;SAC5E;QACD,eAAe,GAAG,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,4BAA4B;IAC5B,oBAAoB;IACpB,4BAA4B;IAC5B,sEAAsE;IACtE,kFAAkF;IAClF,yCAAyC;IACzC,IAAI,YAAY,IAAI,CAAC;QAAE,WAAW,GAAG,sBAAsB,CAAC;IAC5D,IAAI,eAAe,GAAG,KAAK,CAAC,+BAA+B,CAAC,CAAC,MAAM,EAAE,CAAC;IAEtE,gDAAgD;IAChD,iHAAiH;IACjH,IAAI,4BAA4B,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IACvG,IAAI,4BAA4B,GAAG,CAAC;QAAE,4BAA4B,GAAG,CAAC,CAAC;IAEvE,MAAM,SAAS,GAAG,sBAAsB,CAAC;IACzC,eAAe,IAAI,sBAAsB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAEjG,IAAI,mCAAmC,GAAG,eAAe,CAAC;IAC1D,IAAI,aAAa,GAAG,mCAAmC,GAAG,4BAA4B,CAAC,CAAE,KAAK;IAE9F,IAAI,aAAa,GAAG,CAAC,EAAE;QACrB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,4BAA4B,EAAE,KAAK,EAAE,EAAE;YAClE,IAAI,MAAM,GAAG,KAAK,GAAG,4BAA4B,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,mCAAmC,CAAC;YAExG,iDAAiD;YACjD,yGAAyG;YACzG,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YAExD,YAAY,CAAC,IAAI,CAAC;gBAChB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,GAAG;gBACtC,WAAW,EAAE,WAAW;gBACxB,YAAY;gBACZ,eAAe,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE;gBAC9C,WAAW,EAAE,eAAe;aAC7B,CAAC,CAAC;YACH,mCAAmC,IAAI,aAAa,CAAC;YACrD,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;SAC5E;QACD,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;KAClG;IAED,eAAe,GAAG,CAAC,CAAC;IAEpB,4BAA4B;IAC5B,uBAAuB;IACvB,4BAA4B;IAC5B,iFAAiF;IACjF,eAAe,IAAI,sBAAsB,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,sBAAsB,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;IAEnI,mCAAmC,GAAG,eAAe,CAAC;IACtD,iHAAiH;IACjH,4BAA4B,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IACnG,IAAI,4BAA4B,GAAG,CAAC;QAAE,4BAA4B,GAAG,CAAC,CAAC;IAEvE,uDAAuD;IACvD,mCAAmC,IAAI,uBAAuB,CAAC;IAE/D,aAAa,GAAG,mCAAmC,GAAG,4BAA4B,CAAC;IAEnF,yCAAyC;IACzC,IAAI,CAAC,YAAY,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAEpC,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,wBAAwB,EAAE;QAC7F,IAAI,MAAM,GAAG,aAAa,CAAC;QAE3B,iDAAiD;QACjD,yGAAyG;QACzG,uDAAuD;QACvD,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAExD,YAAY,CAAC,IAAI,CAAC;YAChB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,GAAG;YACtC,WAAW,EAAE,WAAW;YACxB,YAAY;YACZ,eAAe,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE;YAC9C,WAAW,EAAE,eAAe;SAC7B,CAAC,CAAC;QACH,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;QAC3E,wBAAwB,GAAG,IAAI,CAAC;KACjC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAEF,OAAO,EACL,0BAA0B,EAAE,qBAAqB,GAClD,CAAC","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 { 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 {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 * @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, firstExerciceNonExpresssEndDate, idPrestation, prestationList, idVat, yearlyAmountNonExpress, nextYearlyAmountNonExpress, listPartialExercicePrestationExpress, listRegulations } = params;\n const 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 let isApplicationAlreadyPaid = false;\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\n if (prestationList?.isCatalog || !prestationList?.isComptable) throw new Error('Ce type de prestation ne correspond pas aux conditions attendues.');\n // if (!listRegulations?.length) throw new Error('List of regulations can not be empty');\n if (listPartialExercicePrestationExpress.length && listPartialExercicePrestationExpress?.some((ep: PartialExercicePrestationExpress) => !ep?.startDate)) throw new Error('Start date of some exercice are missing');\n if (!listRegulations?.every((r: IRegulation) => !!r?.amount || !!r?.amountUsed)) throw new Error('Amount and amountUsed are missing for regulations');\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 sumRegulations = listRegulations.reduce((acc: number, r:IRegulation) => acc + r.amount - r.amountUsed, 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 //On ajoute un paiement initial correspondant à la somme des régulations\n if (sumRegulations) {\n listPayments.push({\n amount:sumRegulations, //TTC\n isPaid: true,\n datePayment: dayjs().toDate(),\n idPrestation,\n idPaymentMethod: PaymentMethod.DIRECT_DEBIT.id,\n closingDate: listPartialExercicePrestationExpress?.length ? listPartialExercicePrestationExpress[0].endDate : firstExerciceNonExpresssEndDate,\n });\n }\n \n // =========================\n // EXPRESS\n // =========================\n listPartialExercicePrestationExpress.forEach((exercicePrestation:PartialExercicePrestationExpress, indexEP: number) => {\n remainingAmount += !priceWithTaxesIncluded \n ? getTaxesIncludedAmount(exercicePrestation.totalAmount, idVat) \n : exercicePrestation.totalAmount; //TTC\n //Si le premier règlement couvre le coût de cet exercicePrestation, on passe au suivant\n if (remainingAmount <= 0) return;\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 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 //On génère un seul exercices plein, non express\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 = yearlyAmountNonExpress;\n remainingAmount += priceWithTaxesIncluded ? exoAmount : getTaxesIncludedAmount(exoAmount, idVat);\n\n let remainingAmountByExercicePrestation = remainingAmount;\n let 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\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 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 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 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 || !isApplicationAlreadyPaid) {\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 isApplicationAlreadyPaid = true;\n }\n\n return listPayments;\n};\n\nexport {\n groupPaymentsByServiceType, calculatePaymentsAuto,\n};"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@silexpert/core",
3
- "version": "1.1.307",
3
+ "version": "1.1.308",
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": "dist/cjs/index.js",
@@ -1,3 +1,5 @@
1
+ import { Role } from './Role';
2
+
1
3
  export enum CardType {
2
4
  BALANCE_SHEET = 1,
3
5
  BALANCE_SHEET_INTERMEDIATE = 2,
@@ -6,6 +8,8 @@ export enum CardType {
6
8
  BALANCE_SHEET_EXPRESS = 5,
7
9
  VAT = 6,
8
10
  // REINFORCED_CHECKLIST = 7,
11
+ CHECK_BALANCE_ANNOTATION_NEW_CLIENT = 8,
12
+ CHECK_BALANCE_ANNOTATION = 9,
9
13
  }
10
14
 
11
15
  export enum CardState {
@@ -23,6 +27,7 @@ export enum CardGroupEnum {
23
27
  BALANCE_SHEET_GROUP = 1,
24
28
  VAT_GROUP = 2,
25
29
  // REINFORCED_CHECKLIST_GROUP = 3,
30
+ ACCEPTATION_GROUP = 4,
26
31
  }
27
32
 
28
33
  export const CardGroup = [
@@ -30,20 +35,30 @@ export const CardGroup = [
30
35
  id: CardGroupEnum.BALANCE_SHEET_GROUP,
31
36
  label: 'Bilans',
32
37
  types: [CardType.BALANCE_SHEET, CardType.BALANCE_SHEET_INTERMEDIATE, CardType.BALANCE_SHEET_PREVISIONAL, CardType.BALANCE_SHEET_LIQUIDATION, CardType.BALANCE_SHEET_EXPRESS] as CardType[],
38
+ roles: [Role.FRONT_OFFICE],
33
39
  maxByDay: 3,
34
40
  },
35
41
  {
36
42
  id: CardGroupEnum.VAT_GROUP,
37
43
  label: 'Déclarations',
38
44
  types: [CardType.VAT] as CardType[],
45
+ roles: [Role.FRONT_OFFICE],
39
46
  maxByDay: 6,
40
47
  },
41
48
  // {
42
49
  // id: CardGroupEnum.REINFORCED_CHECKLIST_GROUP,
43
50
  // label: 'Checklist',
44
51
  // types: [CardType.REINFORCED_CHECKLIST],
52
+ // roles: [Role.FRONT_OFFICE],
45
53
  // maxByDay: 6,
46
54
  // },
55
+ {
56
+ id: CardGroupEnum.ACCEPTATION_GROUP,
57
+ label: 'Contrôle solde bancaire & annotations',
58
+ types: [CardType.CHECK_BALANCE_ANNOTATION_NEW_CLIENT, CardType.CHECK_BALANCE_ANNOTATION] as CardType[],
59
+ roles: [Role.DATA_OFFICER],
60
+ maxByDay: 25,
61
+ },
47
62
  ] as const;
48
63
 
49
64
  export const CardTypeLabel = [
@@ -88,6 +103,18 @@ export const CardTypeLabel = [
88
103
  // label: 'Checklist',
89
104
  // groupId: CardGroupEnum.REINFORCED_CHECKLIST_GROUP,
90
105
  // },
106
+ {
107
+ id: CardType.CHECK_BALANCE_ANNOTATION_NEW_CLIENT,
108
+ label: 'Contrôle solde bancaire & mise en place annotation nouveau client',
109
+ refLabel: 'LABNC',
110
+ groupId: CardGroupEnum.ACCEPTATION_GROUP,
111
+ },
112
+ {
113
+ id: CardType.CHECK_BALANCE_ANNOTATION,
114
+ label: 'Contrôle solde bancaire & contrôle annotations client',
115
+ refLabel: 'LABC',
116
+ groupId: CardGroupEnum.ACCEPTATION_GROUP,
117
+ },
91
118
  ] as const;
92
119
 
93
120
  export interface UserCardsStats {
@@ -21,6 +21,7 @@ export interface ParamsForPaymentsAuto {
21
21
 
22
22
  export interface PaymentAuto {
23
23
  amount: number;
24
+ isPaid?: boolean;
24
25
  datePayment: Date;
25
26
  idPrestation: number;
26
27
  idPaymentMethod: number;
@@ -125,6 +125,7 @@ const calculatePaymentsAuto = (params: ParamsForPaymentsAuto):PaymentAuto[] => {
125
125
  if (sumRegulations) {
126
126
  listPayments.push({
127
127
  amount:sumRegulations, //TTC
128
+ isPaid: true,
128
129
  datePayment: dayjs().toDate(),
129
130
  idPrestation,
130
131
  idPaymentMethod: PaymentMethod.DIRECT_DEBIT.id,