@silexpert/core 1.1.159 → 1.1.162
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/api/resources/CommercialOffer.d.ts +47 -0
- package/dist/cjs/api/resources/CommercialOffer.d.ts.map +1 -0
- package/dist/cjs/api/resources/CommercialOffer.js +64 -0
- package/dist/cjs/api/resources/CommercialOffer.js.map +1 -0
- package/dist/cjs/api/resources/prestation.d.ts +14 -1
- package/dist/cjs/api/resources/prestation.d.ts.map +1 -1
- package/dist/cjs/api/resources/prestation.js +17 -0
- package/dist/cjs/api/resources/prestation.js.map +1 -1
- package/dist/cjs/api/resources.d.ts +2 -0
- package/dist/cjs/api/resources.d.ts.map +1 -1
- package/dist/cjs/api/resources.js +2 -0
- package/dist/cjs/api/resources.js.map +1 -1
- package/dist/cjs/types/Enum/BrandClementine.d.ts +1 -1
- package/dist/cjs/types/Enum/BrandClementine.d.ts.map +1 -1
- package/dist/cjs/types/Enum/BrandClementine.js +21 -20
- package/dist/cjs/types/Enum/BrandClementine.js.map +1 -1
- package/dist/cjs/types/Enum/ClosingType.d.ts +7 -0
- package/dist/cjs/types/Enum/ClosingType.d.ts.map +1 -0
- package/dist/cjs/types/Enum/ClosingType.js +19 -0
- package/dist/cjs/types/Enum/ClosingType.js.map +1 -0
- package/dist/cjs/types/Enum/CommercialOfferType.d.ts +97 -0
- package/dist/cjs/types/Enum/CommercialOfferType.d.ts.map +1 -0
- package/dist/cjs/types/Enum/CommercialOfferType.js +71 -0
- package/dist/cjs/types/Enum/CommercialOfferType.js.map +1 -0
- package/dist/cjs/types/Enum/PrestationOption.d.ts +8 -0
- package/dist/cjs/types/Enum/PrestationOption.d.ts.map +1 -1
- package/dist/cjs/types/Enum/PrestationOption.js.map +1 -1
- package/dist/cjs/types/Enum/PrestationType.d.ts +4 -1
- package/dist/cjs/types/Enum/PrestationType.d.ts.map +1 -1
- package/dist/cjs/types/Enum/PrestationType.js +229 -0
- package/dist/cjs/types/Enum/PrestationType.js.map +1 -1
- package/dist/cjs/types/Enum/PriceGridClementine.d.ts +101 -0
- package/dist/cjs/types/Enum/PriceGridClementine.d.ts.map +1 -0
- package/dist/cjs/types/Enum/PriceGridClementine.js +338 -0
- package/dist/cjs/types/Enum/PriceGridClementine.js.map +1 -0
- package/dist/cjs/types/Enum/PriceGridLegalstart.d.ts +34 -0
- package/dist/cjs/types/Enum/PriceGridLegalstart.d.ts.map +1 -0
- package/dist/cjs/types/Enum/PriceGridLegalstart.js +103 -0
- package/dist/cjs/types/Enum/PriceGridLegalstart.js.map +1 -0
- package/dist/cjs/types/Enum/PriceGridPourcentage.d.ts +52 -0
- package/dist/cjs/types/Enum/PriceGridPourcentage.d.ts.map +1 -0
- package/dist/cjs/types/Enum/PriceGridPourcentage.js +1125 -0
- package/dist/cjs/types/Enum/PriceGridPourcentage.js.map +1 -0
- package/dist/cjs/types/Interface/api/commercial/QueryGetStats.d.ts +1 -0
- package/dist/cjs/types/Interface/api/commercial/QueryGetStats.d.ts.map +1 -1
- package/dist/cjs/types/Interface/api/commercial/QueryGetStats.js +6 -0
- package/dist/cjs/types/Interface/api/commercial/QueryGetStats.js.map +1 -1
- package/dist/cjs/types/Interface/api/commercial/QueryPaginatedSocietyWithStatsCa.d.ts +1 -0
- package/dist/cjs/types/Interface/api/commercial/QueryPaginatedSocietyWithStatsCa.d.ts.map +1 -1
- package/dist/cjs/types/Interface/api/commercial/QueryPaginatedSocietyWithStatsCa.js +6 -0
- package/dist/cjs/types/Interface/api/commercial/QueryPaginatedSocietyWithStatsCa.js.map +1 -1
- package/dist/cjs/types/Interface/api/commercialOffer/Query.d.ts +13 -0
- package/dist/cjs/types/Interface/api/commercialOffer/Query.d.ts.map +1 -0
- package/dist/cjs/types/Interface/api/commercialOffer/Query.js +69 -0
- package/dist/cjs/types/Interface/api/commercialOffer/Query.js.map +1 -0
- package/dist/cjs/types/Interface/api/prestation/Query.d.ts +19 -0
- package/dist/cjs/types/Interface/api/prestation/Query.d.ts.map +1 -0
- package/dist/cjs/types/Interface/api/prestation/Query.js +77 -0
- package/dist/cjs/types/Interface/api/prestation/Query.js.map +1 -0
- package/dist/cjs/types/Interface/api/prestations/QueryUpdate.d.ts +1 -0
- package/dist/cjs/types/Interface/api/prestations/QueryUpdate.d.ts.map +1 -1
- package/dist/cjs/types/Interface/api/prestations/QueryUpdate.js +6 -0
- package/dist/cjs/types/Interface/api/prestations/QueryUpdate.js.map +1 -1
- package/dist/cjs/types/Interface/models/ICommercialOffer.d.ts +16 -0
- package/dist/cjs/types/Interface/models/ICommercialOffer.d.ts.map +1 -0
- package/dist/cjs/types/Interface/models/ICommercialOffer.js +3 -0
- package/dist/cjs/types/Interface/models/ICommercialOffer.js.map +1 -0
- package/dist/cjs/types/Interface/models/IExercicePrestation.d.ts +2 -1
- package/dist/cjs/types/Interface/models/IExercicePrestation.d.ts.map +1 -1
- package/dist/cjs/types/Interface/models/IExercicePrestation.js.map +1 -1
- package/dist/cjs/types/Interface/models/IExercicePrestationOffer.d.ts +10 -0
- package/dist/cjs/types/Interface/models/IExercicePrestationOffer.d.ts.map +1 -0
- package/dist/cjs/types/Interface/models/IExercicePrestationOffer.js +3 -0
- package/dist/cjs/types/Interface/models/IExercicePrestationOffer.js.map +1 -0
- package/dist/cjs/types/Interface/models/IPrestationList.d.ts +1 -0
- package/dist/cjs/types/Interface/models/IPrestationList.d.ts.map +1 -1
- package/dist/cjs/types/Interface/models/IPrestationList.js.map +1 -1
- package/dist/cjs/types/index.d.ts +9 -0
- package/dist/cjs/types/index.d.ts.map +1 -1
- package/dist/cjs/types/index.js +9 -0
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/utils/commercialOffer.d.ts +6 -0
- package/dist/cjs/utils/commercialOffer.d.ts.map +1 -0
- package/dist/cjs/utils/commercialOffer.js +39 -0
- package/dist/cjs/utils/commercialOffer.js.map +1 -0
- package/dist/cjs/utils/index.d.ts +1 -0
- package/dist/cjs/utils/index.d.ts.map +1 -1
- package/dist/cjs/utils/index.js +1 -0
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/prestation.d.ts +9 -2
- package/dist/cjs/utils/prestation.d.ts.map +1 -1
- package/dist/cjs/utils/prestation.js +155 -1
- package/dist/cjs/utils/prestation.js.map +1 -1
- package/dist/mjs/api/resources/CommercialOffer.d.ts +47 -0
- package/dist/mjs/api/resources/CommercialOffer.d.ts.map +1 -0
- package/dist/mjs/api/resources/CommercialOffer.js +60 -0
- package/dist/mjs/api/resources/CommercialOffer.js.map +1 -0
- package/dist/mjs/api/resources/prestation.d.ts +14 -1
- package/dist/mjs/api/resources/prestation.d.ts.map +1 -1
- package/dist/mjs/api/resources/prestation.js +17 -0
- package/dist/mjs/api/resources/prestation.js.map +1 -1
- package/dist/mjs/api/resources.d.ts +2 -0
- package/dist/mjs/api/resources.d.ts.map +1 -1
- package/dist/mjs/api/resources.js +2 -0
- package/dist/mjs/api/resources.js.map +1 -1
- package/dist/mjs/types/Enum/BrandClementine.d.ts +1 -1
- package/dist/mjs/types/Enum/BrandClementine.d.ts.map +1 -1
- package/dist/mjs/types/Enum/BrandClementine.js +21 -20
- package/dist/mjs/types/Enum/BrandClementine.js.map +1 -1
- package/dist/mjs/types/Enum/ClosingType.d.ts +7 -0
- package/dist/mjs/types/Enum/ClosingType.d.ts.map +1 -0
- package/dist/mjs/types/Enum/ClosingType.js +16 -0
- package/dist/mjs/types/Enum/ClosingType.js.map +1 -0
- package/dist/mjs/types/Enum/CommercialOfferType.d.ts +97 -0
- package/dist/mjs/types/Enum/CommercialOfferType.d.ts.map +1 -0
- package/dist/mjs/types/Enum/CommercialOfferType.js +68 -0
- package/dist/mjs/types/Enum/CommercialOfferType.js.map +1 -0
- package/dist/mjs/types/Enum/PrestationOption.d.ts +8 -0
- package/dist/mjs/types/Enum/PrestationOption.d.ts.map +1 -1
- package/dist/mjs/types/Enum/PrestationOption.js.map +1 -1
- package/dist/mjs/types/Enum/PrestationType.d.ts +4 -1
- package/dist/mjs/types/Enum/PrestationType.d.ts.map +1 -1
- package/dist/mjs/types/Enum/PrestationType.js +229 -0
- package/dist/mjs/types/Enum/PrestationType.js.map +1 -1
- package/dist/mjs/types/Enum/PriceGridClementine.d.ts +101 -0
- package/dist/mjs/types/Enum/PriceGridClementine.d.ts.map +1 -0
- package/dist/mjs/types/Enum/PriceGridClementine.js +335 -0
- package/dist/mjs/types/Enum/PriceGridClementine.js.map +1 -0
- package/dist/mjs/types/Enum/PriceGridLegalstart.d.ts +34 -0
- package/dist/mjs/types/Enum/PriceGridLegalstart.d.ts.map +1 -0
- package/dist/mjs/types/Enum/PriceGridLegalstart.js +100 -0
- package/dist/mjs/types/Enum/PriceGridLegalstart.js.map +1 -0
- package/dist/mjs/types/Enum/PriceGridPourcentage.d.ts +52 -0
- package/dist/mjs/types/Enum/PriceGridPourcentage.d.ts.map +1 -0
- package/dist/mjs/types/Enum/PriceGridPourcentage.js +1122 -0
- package/dist/mjs/types/Enum/PriceGridPourcentage.js.map +1 -0
- package/dist/mjs/types/Interface/api/commercial/QueryGetStats.d.ts +1 -0
- package/dist/mjs/types/Interface/api/commercial/QueryGetStats.d.ts.map +1 -1
- package/dist/mjs/types/Interface/api/commercial/QueryGetStats.js +7 -0
- package/dist/mjs/types/Interface/api/commercial/QueryGetStats.js.map +1 -1
- package/dist/mjs/types/Interface/api/commercial/QueryPaginatedSocietyWithStatsCa.d.ts +1 -0
- package/dist/mjs/types/Interface/api/commercial/QueryPaginatedSocietyWithStatsCa.d.ts.map +1 -1
- package/dist/mjs/types/Interface/api/commercial/QueryPaginatedSocietyWithStatsCa.js +7 -0
- package/dist/mjs/types/Interface/api/commercial/QueryPaginatedSocietyWithStatsCa.js.map +1 -1
- package/dist/mjs/types/Interface/api/commercialOffer/Query.d.ts +13 -0
- package/dist/mjs/types/Interface/api/commercialOffer/Query.d.ts.map +1 -0
- package/dist/mjs/types/Interface/api/commercialOffer/Query.js +72 -0
- package/dist/mjs/types/Interface/api/commercialOffer/Query.js.map +1 -0
- package/dist/mjs/types/Interface/api/prestation/Query.d.ts +19 -0
- package/dist/mjs/types/Interface/api/prestation/Query.d.ts.map +1 -0
- package/dist/mjs/types/Interface/api/prestation/Query.js +82 -0
- package/dist/mjs/types/Interface/api/prestation/Query.js.map +1 -0
- package/dist/mjs/types/Interface/api/prestations/QueryUpdate.d.ts +1 -0
- package/dist/mjs/types/Interface/api/prestations/QueryUpdate.d.ts.map +1 -1
- package/dist/mjs/types/Interface/api/prestations/QueryUpdate.js +7 -0
- package/dist/mjs/types/Interface/api/prestations/QueryUpdate.js.map +1 -1
- package/dist/mjs/types/Interface/models/ICommercialOffer.d.ts +16 -0
- package/dist/mjs/types/Interface/models/ICommercialOffer.d.ts.map +1 -0
- package/dist/mjs/types/Interface/models/ICommercialOffer.js +2 -0
- package/dist/mjs/types/Interface/models/ICommercialOffer.js.map +1 -0
- package/dist/mjs/types/Interface/models/IExercicePrestation.d.ts +2 -1
- package/dist/mjs/types/Interface/models/IExercicePrestation.d.ts.map +1 -1
- package/dist/mjs/types/Interface/models/IExercicePrestation.js.map +1 -1
- package/dist/mjs/types/Interface/models/IExercicePrestationOffer.d.ts +10 -0
- package/dist/mjs/types/Interface/models/IExercicePrestationOffer.d.ts.map +1 -0
- package/dist/mjs/types/Interface/models/IExercicePrestationOffer.js +2 -0
- package/dist/mjs/types/Interface/models/IExercicePrestationOffer.js.map +1 -0
- package/dist/mjs/types/Interface/models/IPrestationList.d.ts +1 -0
- package/dist/mjs/types/Interface/models/IPrestationList.d.ts.map +1 -1
- package/dist/mjs/types/Interface/models/IPrestationList.js.map +1 -1
- package/dist/mjs/types/index.d.ts +9 -0
- package/dist/mjs/types/index.d.ts.map +1 -1
- package/dist/mjs/types/index.js +9 -0
- package/dist/mjs/types/index.js.map +1 -1
- package/dist/mjs/utils/commercialOffer.d.ts +6 -0
- package/dist/mjs/utils/commercialOffer.d.ts.map +1 -0
- package/dist/mjs/utils/commercialOffer.js +33 -0
- package/dist/mjs/utils/commercialOffer.js.map +1 -0
- package/dist/mjs/utils/index.d.ts +1 -0
- package/dist/mjs/utils/index.d.ts.map +1 -1
- package/dist/mjs/utils/index.js +1 -0
- package/dist/mjs/utils/index.js.map +1 -1
- package/dist/mjs/utils/prestation.d.ts +9 -2
- package/dist/mjs/utils/prestation.d.ts.map +1 -1
- package/dist/mjs/utils/prestation.js +150 -1
- package/dist/mjs/utils/prestation.js.map +1 -1
- package/package.json +1 -1
- package/ts/api/resources/CommercialOffer.ts +67 -0
- package/ts/api/resources/prestation.ts +21 -1
- package/ts/api/resources.ts +2 -0
- package/ts/types/Enum/BrandClementine.ts +21 -20
- package/ts/types/Enum/ClosingType.ts +17 -0
- package/ts/types/Enum/CommercialOfferType.ts +84 -0
- package/ts/types/Enum/PrestationOption.ts +9 -0
- package/ts/types/Enum/PrestationType.ts +229 -0
- package/ts/types/Enum/PriceGridClementine.ts +335 -0
- package/ts/types/Enum/PriceGridLegalstart.ts +100 -0
- package/ts/types/Enum/PriceGridPourcentage.ts +1122 -0
- package/ts/types/Interface/api/commercial/QueryGetStats.ts +5 -0
- package/ts/types/Interface/api/commercial/QueryPaginatedSocietyWithStatsCa.ts +5 -0
- package/ts/types/Interface/api/commercialOffer/Query.ts +46 -0
- package/ts/types/Interface/api/prestation/Query.ts +56 -0
- package/ts/types/Interface/api/prestations/QueryUpdate.ts +5 -0
- package/ts/types/Interface/models/ICommercialOffer.ts +18 -0
- package/ts/types/Interface/models/IExercicePrestation.ts +2 -1
- package/ts/types/Interface/models/IExercicePrestationOffer.ts +13 -0
- package/ts/types/Interface/models/IPrestationList.ts +1 -0
- package/ts/types/index.ts +9 -0
- package/ts/utils/commercialOffer.ts +37 -0
- package/ts/utils/index.ts +1 -0
- package/ts/utils/prestation.ts +193 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prestation.d.ts","sourceRoot":"","sources":["../../../ts/utils/prestation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"prestation.d.ts","sourceRoot":"","sources":["../../../ts/utils/prestation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAoB,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAoB,MAAM,gCAAgC,CAAC;AAsDxF,QAAA,MAAM,yBAAyB,qBAAsB,MAAM,KAAG,OAOC,CAAC;AAEhE,QAAA,MAAM,wBAAwB,gBAAgB,OAAO,aAAY,OAAO,oBAAoB,MAAM,KAAG,OAA4F,CAAC;AAElM,QAAA,MAAM,oBAAoB,qBAAsB,MAAM,KAAG,OAA8E,CAAC;AAExI,QAAA,MAAM,kBAAkB,WAAW,OAAO,aAAY,OAAO,KAAG,OAA+B,CAAC;AAEhG,QAAA,MAAM,WAAW,qBAAsB,MAAM,EAAE,KAAE,OAAmK,CAAC;AAErN,QAAA,MAAM,YAAY,qBAAsB,MAAM,EAAE,KAAE,OAA+H,CAAC;AAElL,QAAA,MAAM,aAAa,qBAAsB,MAAM,EAAE,KAAE,OAA+G,CAAC;AAEnK,QAAA,MAAM,UAAU,qBAAsB,MAAM,EAAE,KAAE,OAAqE,CAAC;AAEtH,QAAA,MAAM,SAAS,qBAAsB,MAAM,KAAE,OAI5C,CAAC;AAEF,QAAA,MAAM,4BAA4B,qBAAsB,cAAc,eAAe,WAAW,EAAE,KAAG,MAmBpG,CAAC;AAqEF,QAAA,MAAM,wBAAwB,qBAAsB,MAAM,kBAAkB,eAAe,WAAW,MAAM,YAAY,MAAM,YAAY,MAAM,eAAe,MAAM,mBAAmB,MAAM,oBAAoB,MAAM,eAAe,MAAM,eAAe,MAAM,oBAAoB,OAAO,eAAe,MAAM,EAAE,mBAAmB,MAAM,eAAe,MAAM,cAAc,MAAM,aAAY,OAAO;qBAA8B,MAAM;iBAAe,MAAM;CA8Cjc,CAAC;AAEF,QAAA,MAAM,oBAAoB,qBAAsB,MAAM,KAAG,oBAAoB,EAG5E,CAAC;AAEF,QAAA,MAAM,mBAAmB,gBAAiB,MAAM,oBAAoB,MAAM,YAAY,MAAM,oBAAoB,OAAO,KAAG,OAgBzH,CAAC;AAEF,OAAO,EACL,yBAAyB,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,4BAA4B,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,mBAAmB,GAClQ,CAAC"}
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import { PrestationDetail, PrestationType } from '../types/Enum/PrestationType';
|
|
2
|
+
import { PrestationOption } from '../types/Enum/PrestationOption';
|
|
3
|
+
import { PriceGridClementine } from '../types/Enum/PriceGridClementine';
|
|
4
|
+
import { PriceGridPourcentage } from '../types/Enum/PriceGridPourcentage';
|
|
5
|
+
import { PriceGridLegalstart } from '../types/Enum/PriceGridLegalstart';
|
|
6
|
+
import { ClosingType } from '../types/Enum/ClosingType';
|
|
7
|
+
import { getBrandNameByNodeEnv } from './brands';
|
|
8
|
+
import * as dayjs from 'dayjs';
|
|
2
9
|
const isOtherAccountingMissions = (idPrestationList) => [
|
|
3
10
|
PrestationType.PREVISIONNEL,
|
|
4
11
|
PrestationType.BILAN_INTERMEDIAIRE,
|
|
@@ -36,5 +43,147 @@ const calculateScoringOfPrestation = (idPrestationType, prestations) => {
|
|
|
36
43
|
return Math.floor(numberPoint * 0.3);
|
|
37
44
|
return numberPoint;
|
|
38
45
|
};
|
|
39
|
-
|
|
46
|
+
const getPriceGrid = (idTypeBrand, idPrestationList) => {
|
|
47
|
+
let currentBrandPriceGrid;
|
|
48
|
+
let currentPriceGrid;
|
|
49
|
+
const currentEnvName = getBrandNameByNodeEnv(process.env.NODE_ENV);
|
|
50
|
+
const listEnvEnum = {
|
|
51
|
+
PriceGridClementine, PriceGridPourcentage, PriceGridLegalstart,
|
|
52
|
+
};
|
|
53
|
+
// @ts-ignore
|
|
54
|
+
const currentPriceGridFile = listEnvEnum[`PriceGrid${currentEnvName}`];
|
|
55
|
+
if (currentPriceGridFile)
|
|
56
|
+
currentBrandPriceGrid = currentPriceGridFile.find((priceGrid) => priceGrid.idTypeBrand === idTypeBrand);
|
|
57
|
+
if (currentBrandPriceGrid)
|
|
58
|
+
currentPriceGrid = currentBrandPriceGrid?.price.find((price) => price.idPrestationList.includes(idPrestationList));
|
|
59
|
+
return currentPriceGrid;
|
|
60
|
+
};
|
|
61
|
+
const calculatePrestationPriceWithPriceGrid = (idPrestationList, endDate, NbrMonth, turnover, rentsNumber, employeesNumber, associatesNumber, idTypeBrand, idVatRegime, pastBalanceSheet, isYearly, totalMonth) => {
|
|
62
|
+
let totalPrestation = 0;
|
|
63
|
+
let reduceMonth = 0;
|
|
64
|
+
/* Récupération de la grille tarifaire */
|
|
65
|
+
const currentPriceGrid = getPriceGrid(idTypeBrand, idPrestationList);
|
|
66
|
+
if (currentPriceGrid) {
|
|
67
|
+
let monthlyPrice;
|
|
68
|
+
let yearlyPrice;
|
|
69
|
+
let vatRegimePrice;
|
|
70
|
+
/* Gestion du régime de TVA */
|
|
71
|
+
if (currentPriceGrid.vatRegimeMonthly && !isYearly)
|
|
72
|
+
vatRegimePrice = currentPriceGrid.vatRegimeMonthly?.find(regime => regime.type === idVatRegime)?.price;
|
|
73
|
+
else if (currentPriceGrid.vatRegimeYearly && isYearly)
|
|
74
|
+
vatRegimePrice = currentPriceGrid.vatRegimeYearly?.find(regime => regime.type === idVatRegime)?.price;
|
|
75
|
+
/* Gestion des montants */
|
|
76
|
+
if (currentPriceGrid.turnoverMonthly && !isYearly)
|
|
77
|
+
monthlyPrice = currentPriceGrid.turnoverMonthly?.find(turn => turnover < turn.turnoverValue)?.price;
|
|
78
|
+
else if (currentPriceGrid.properties)
|
|
79
|
+
monthlyPrice = currentPriceGrid.properties?.find(property => property.amount === rentsNumber)?.price;
|
|
80
|
+
else if (currentPriceGrid.employee)
|
|
81
|
+
monthlyPrice = currentPriceGrid.employee?.find(emp => emp.amountMinimum <= employeesNumber && emp.amountMaximum >= employeesNumber)?.price;
|
|
82
|
+
else if (currentPriceGrid.turnoverYearly && isYearly)
|
|
83
|
+
yearlyPrice = currentPriceGrid.turnoverYearly?.find(turn => turnover < turn.turnoverValue)?.price;
|
|
84
|
+
else if (!pastBalanceSheet && currentPriceGrid.turnoverCreatedYear)
|
|
85
|
+
yearlyPrice = currentPriceGrid.turnoverCreatedYear?.find(turn => turnover < turn.turnoverValue)?.price;
|
|
86
|
+
else if (pastBalanceSheet && currentPriceGrid.turnoverPastYear)
|
|
87
|
+
yearlyPrice = currentPriceGrid.turnoverPastYear?.find(turn => turnover < turn.turnoverValue)?.price;
|
|
88
|
+
else if (currentPriceGrid.partner)
|
|
89
|
+
yearlyPrice = currentPriceGrid.partner?.find(part => part.amountMinimum <= associatesNumber && part.amountMaximum >= associatesNumber)?.price;
|
|
90
|
+
const finalMonthlyPrice = (monthlyPrice ? monthlyPrice : 0) + (vatRegimePrice ? vatRegimePrice : 0);
|
|
91
|
+
/* Gestion des mois */
|
|
92
|
+
let cloturedPast = false;
|
|
93
|
+
if (dayjs(endDate, 'YYYY-MM-DD').subtract(15, 'day').isBefore(dayjs()))
|
|
94
|
+
cloturedPast = true;
|
|
95
|
+
const minimumMonth = currentPriceGrid.minimumMonthlyPayment?.find(monthlyPayment => monthlyPayment.id === (cloturedPast ? ClosingType.OUTDATED : ClosingType.IN_PROGRESS))?.month;
|
|
96
|
+
const maximumMonth = currentPriceGrid.maximumMonthlyPayment?.find(monthlyPayment => monthlyPayment.id === (cloturedPast ? ClosingType.OUTDATED : ClosingType.IN_PROGRESS))?.month;
|
|
97
|
+
let monthNbr = NbrMonth;
|
|
98
|
+
if (totalMonth > 0)
|
|
99
|
+
monthNbr = monthNbr - totalMonth;
|
|
100
|
+
if (minimumMonth && monthNbr < minimumMonth)
|
|
101
|
+
monthNbr = minimumMonth;
|
|
102
|
+
if (maximumMonth && monthNbr > maximumMonth)
|
|
103
|
+
monthNbr = maximumMonth;
|
|
104
|
+
reduceMonth = (monthNbr === NbrMonth - totalMonth ? totalMonth : 0);
|
|
105
|
+
/* Prix Final */
|
|
106
|
+
totalPrestation = (yearlyPrice ? yearlyPrice : finalMonthlyPrice * monthNbr);
|
|
107
|
+
}
|
|
108
|
+
return { totalPrestation, reduceMonth };
|
|
109
|
+
};
|
|
110
|
+
const calculatePrestationPriceWithPrestationList = (prestationList) => {
|
|
111
|
+
let totalPrestation = 0;
|
|
112
|
+
totalPrestation = prestationList.price || 0;
|
|
113
|
+
return totalPrestation;
|
|
114
|
+
};
|
|
115
|
+
const calculatePrestationPrice = (idPrestationList, prestationList, endDate, NbrMonth, turnover, rentsNumber, employeesNumber, associatesNumber, idTypeBrand, idVatRegime, pastBalanceSheet, optionsList, totalPercentage, totalAmount, totalMonth, isYearly = false) => {
|
|
116
|
+
let totalPrestation = 0;
|
|
117
|
+
let reduceMonth = 0;
|
|
118
|
+
let totalWithReduce = { totalPrestation: 0, reduceMonth: 0 };
|
|
119
|
+
/* Gestion du prix en fonction de la prestation */
|
|
120
|
+
if ([
|
|
121
|
+
PrestationType.COMPTA_PRO,
|
|
122
|
+
PrestationType.COMPTA_PRO_EXPRESS,
|
|
123
|
+
PrestationType.COMPTA_ENTREPRISE,
|
|
124
|
+
PrestationType.COMPTA_ENTREPRISE_EXPRESS,
|
|
125
|
+
PrestationType.COMPTA_SCI,
|
|
126
|
+
PrestationType.COMPTA_SCI_EXPRESS,
|
|
127
|
+
PrestationType.BILAN_PREVISIONNEL,
|
|
128
|
+
PrestationType.COMPTA_PREMIUM,
|
|
129
|
+
PrestationType.COMPTA_POURCENTAGE_PREMIUM,
|
|
130
|
+
PrestationType.COMPTA_POURCENTAGE_PREMIUM_EXPRESS,
|
|
131
|
+
PrestationType.COMPTA_POURCENTAGE,
|
|
132
|
+
PrestationType.COMPTA_POURCENTAGE_EXPRESS,
|
|
133
|
+
PrestationType.SOCIAL,
|
|
134
|
+
PrestationType.GESTION_JURIDIQUE,
|
|
135
|
+
PrestationType.COMPTA_PRO_COMPTASTART,
|
|
136
|
+
PrestationType.COMPTA_PRO_COMPTASTART_EXPRESS,
|
|
137
|
+
].includes(idPrestationList)) {
|
|
138
|
+
totalWithReduce = calculatePrestationPriceWithPriceGrid(idPrestationList, endDate, NbrMonth, turnover, rentsNumber, employeesNumber, associatesNumber, idTypeBrand, idVatRegime, pastBalanceSheet, isYearly, totalMonth);
|
|
139
|
+
totalPrestation = totalWithReduce.totalPrestation;
|
|
140
|
+
reduceMonth = totalWithReduce.reduceMonth;
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
totalPrestation = calculatePrestationPriceWithPrestationList(prestationList);
|
|
144
|
+
}
|
|
145
|
+
if (totalPercentage > 0)
|
|
146
|
+
totalPrestation = totalPrestation - (totalPrestation * (totalPercentage / 100));
|
|
147
|
+
if (totalAmount > 0)
|
|
148
|
+
totalPrestation = totalPrestation - totalAmount;
|
|
149
|
+
if (prestationList.minimumPrice && totalPrestation < prestationList.minimumPrice)
|
|
150
|
+
totalPrestation = prestationList.minimumPrice;
|
|
151
|
+
/* Gestion des options */
|
|
152
|
+
let OptionTotalPrice = 0;
|
|
153
|
+
if (optionsList.length) {
|
|
154
|
+
optionsList.forEach((optionId) => {
|
|
155
|
+
const optionPrice = Object.values(PrestationOption).find((option) => option.id === optionId)?.price;
|
|
156
|
+
if (optionPrice)
|
|
157
|
+
OptionTotalPrice += optionPrice;
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
totalPrestation += (OptionTotalPrice ? OptionTotalPrice : 0);
|
|
161
|
+
return { totalPrestation, reduceMonth };
|
|
162
|
+
};
|
|
163
|
+
const getPrestationOptions = (idPrestationList) => {
|
|
164
|
+
const PrestationOptionList = Object.values(PrestationOption).filter(option => option.brand.includes(getBrandNameByNodeEnv(process.env.NODE_ENV)));
|
|
165
|
+
return PrestationOptionList.filter(option => option.prestationList.includes(idPrestationList));
|
|
166
|
+
};
|
|
167
|
+
const isAbleToUpdatePrice = (idTypeBrand, idPrestationList, turnover, pastBalanceSheet) => {
|
|
168
|
+
/* Récupération de la grille tarifaire */
|
|
169
|
+
const currentPriceGrid = getPriceGrid(idTypeBrand, idPrestationList);
|
|
170
|
+
if (currentPriceGrid) {
|
|
171
|
+
// @ts-ignore
|
|
172
|
+
if ([PrestationType.COMPTA_PREMIUM, PrestationType.COMPTA_POURCENTAGE_PREMIUM, PrestationType.COMPTA_POURCENTAGE_PREMIUM_EXPRESS].includes(idPrestationList) && currentPriceGrid.turnoverMonthly[currentPriceGrid.turnoverMonthly.length - 2].turnoverValue < turnover)
|
|
173
|
+
return true;
|
|
174
|
+
// @ts-ignore
|
|
175
|
+
else if ([PrestationType.COMPTA_POURCENTAGE, PrestationType.COMPTA_POURCENTAGE_EXPRESS].includes(idPrestationList) && currentPriceGrid.turnoverMonthly[currentPriceGrid.turnoverMonthly.length - 1].turnoverValue < turnover)
|
|
176
|
+
return true;
|
|
177
|
+
// @ts-ignore
|
|
178
|
+
else if ([PrestationType.BILAN_PREVISIONNEL].includes(idPrestationList) && !pastBalanceSheet && currentPriceGrid.turnoverCreatedYear[currentPriceGrid.turnoverCreatedYear.length - 1].turnoverValue < turnover)
|
|
179
|
+
return true;
|
|
180
|
+
// @ts-ignore
|
|
181
|
+
else if ([PrestationType.BILAN_PREVISIONNEL].includes(idPrestationList) && pastBalanceSheet && currentPriceGrid.turnoverPastYear[currentPriceGrid.turnoverPastYear.length - 1].turnoverValue < turnover)
|
|
182
|
+
return true;
|
|
183
|
+
else
|
|
184
|
+
return false;
|
|
185
|
+
}
|
|
186
|
+
return false;
|
|
187
|
+
};
|
|
188
|
+
export { isOtherAccountingMissions, isOtherJuridicalMissions, isAdditionalPresta, isOtherSocialMission, isOnlyPrevi, isOnlySocial, isOnlyJuridic, isCreation, isExpress, calculateScoringOfPrestation, calculatePrestationPrice, getPrestationOptions, isAbleToUpdatePrice, };
|
|
40
189
|
//# sourceMappingURL=prestation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prestation.js","sourceRoot":"","sources":["../../../ts/utils/prestation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEhF,MAAM,yBAAyB,GAAG,CAAC,gBAAwB,EAAW,EAAE,CAAC;IACvE,cAAc,CAAC,YAAY;IAC3B,cAAc,CAAC,mBAAmB;IAClC,cAAc,CAAC,wCAAwC;IACvD,cAAc,CAAC,uBAAuB;IACtC,cAAc,CAAC,GAAG;IAClB,cAAc,CAAC,aAAa;IAC5B,cAAc,CAAC,kBAAkB;CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AAEhE,MAAM,wBAAwB,GAAG,CAAC,WAAmB,EAAE,SAAiB,EAAE,gBAAwB,EAAW,EAAE,CAAC,gBAAgB,KAAK,cAAc,CAAC,iBAAiB,IAAI,SAAS,IAAI,WAAW,CAAC;AAElM,MAAM,oBAAoB,GAAG,CAAC,gBAAwB,EAAW,EAAE,CAAC,gBAAgB,KAAK,cAAc,CAAC,+BAA+B,CAAC;AAExI,MAAM,kBAAkB,GAAG,CAAC,MAAc,EAAE,SAAiB,EAAW,EAAE,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC;AAEhG,MAAM,WAAW,GAAG,CAAC,gBAA0B,EAAU,EAAE,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAW,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,YAAY,EAAE,cAAc,CAAC,kBAAkB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;AAErN,MAAM,YAAY,GAAG,CAAC,gBAA0B,EAAU,EAAE,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAW,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;AAElL,MAAM,aAAa,GAAG,CAAC,gBAA0B,EAAU,EAAE,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAW,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;AAEnK,MAAM,UAAU,GAAG,CAAC,gBAA0B,EAAU,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;AAEtH,MAAM,SAAS,GAAG,CAAC,gBAAwB,EAAU,EAAE;IACrD,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAQ,CAAC;IACtE,MAAM,UAAU,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC,EAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,gBAAgB,CAAC,CAAC;IACvF,OAAO,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;AAC7B,CAAC,CAAC;AAEF,MAAM,4BAA4B,GAAG,CAAC,gBAAgC,EAAE,WAA0B,EAAU,EAAE;IAC5G,MAAM,qBAAqB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,eAAe,KAAK,IAAI,CAAC,CAAC;IAE9I,kDAAkD;IAClD,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC7G,MAAM,sBAAsB,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAExE,kDAAkD;IAClD,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,KAAK,gBAAgB,CAAC,CAAC;IACnH,MAAM,WAAW,GAAG,aAAa,EAAE,KAAK,IAAI,CAAC,CAAC;IAE9C,2HAA2H;IAC3H,MAAM,mBAAmB,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IACnG,MAAM,iCAAiC,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IAElH,0KAA0K;IAC1K,IAAI,iCAAiC,CAAC,MAAM,IAAI,sBAAsB,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC;IAExI,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAEF,OAAO,EACL,yBAAyB,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,4BAA4B,GAC7L,CAAC","sourcesContent":["import { IPrestation } from '../types';\nimport { PrestationDetail, PrestationType } from '../types/Enum/PrestationType';\n\nconst isOtherAccountingMissions = (idPrestationList: number): boolean => [\n PrestationType.PREVISIONNEL,\n PrestationType.BILAN_INTERMEDIAIRE,\n PrestationType.AVANCE_OU_ABANDON_COMPTE_COURANT_ASSOCIE,\n PrestationType.AUTRE_MISSION_COMPTABLE,\n PrestationType.TVS,\n PrestationType.ETUDE_FISCALE,\n PrestationType.BILAN_PREVISIONNEL].includes(idPrestationList);\n\nconst isOtherJuridicalMissions = (isJuridique:boolean, isCatalog:boolean, idPrestationList: number): boolean => idPrestationList !== PrestationType.GESTION_JURIDIQUE && isCatalog && isJuridique;\n\nconst isOtherSocialMission = (idPrestationList: number): boolean => idPrestationList === PrestationType.AUTRE_MISSION_SOCIALE_HORS_PAIE;\n\nconst isAdditionalPresta = (hidden:boolean, isCatalog:boolean): boolean => !hidden && isCatalog;\n\nconst isOnlyPrevi = (idPrestationList: number[]):boolean => !idPrestationList.filter((idPL:number) => ![PrestationType.PREVISIONNEL, PrestationType.BILAN_PREVISIONNEL, PrestationType.PV_AG].includes(idPL)).length;\n\nconst isOnlySocial = (idPrestationList: number[]):boolean => !idPrestationList.filter((idPL:number) => ![PrestationType.FRUCTUPAIE, PrestationType.SOCIAL].includes(idPL)).length;\n\nconst isOnlyJuridic = (idPrestationList: number[]):boolean => !idPrestationList.filter((idPL:number) => ![PrestationType.GESTION_JURIDIQUE].includes(idPL)).length;\n\nconst isCreation = (idPrestationList: number[]):boolean => idPrestationList.includes(PrestationType.CREATION_SOCIETE);\n\nconst isExpress = (idPrestationList: number):boolean => {\n const prestationDetailValues = Object.values(PrestationDetail) as any;\n const prestaList = prestationDetailValues.find((pr:any) => pr.id === idPrestationList);\n return !!prestaList.isBack;\n};\n\nconst calculateScoringOfPrestation = (idPrestationType: PrestationType, prestations: IPrestation[]): number => {\n const prestationsSignedPaid = prestations.filter((prestation) => prestation.paid && prestation.signed && prestation.terminationList === null);\n\n // Get the list of prestations that are half price\n const prestationHalfPriceList = Object.values(PrestationDetail).filter((p) => p.isComptable && !p.isCatalog);\n const prestationHalfPriceIds = prestationHalfPriceList.map((t) => t.id);\n\n // Get the number of points for the new prestation\n const prestaDetails = Object.values(PrestationDetail).find((prestaDetail) => prestaDetail.id === idPrestationType);\n const numberPoint = prestaDetails?.point || 0;\n\n // Get list of prestations that are already done and check if one of them is in the list of prestations that are half price\n const prestationsExistIds = prestationsSignedPaid.map((prestation) => prestation.idPrestationList);\n const prestationHalfPriceAlreadyDoneIds = prestationsExistIds.filter((id) => prestationHalfPriceIds.includes(id));\n\n // If one of the prestations already done is in the list of prestations that are half price and if the idPrestationType is in prestationHalfPriceIds, return 50% of points\n if (prestationHalfPriceAlreadyDoneIds.length && prestationHalfPriceIds.includes(idPrestationType)) return Math.floor(numberPoint * 0.3);\n\n return numberPoint;\n};\n\nexport {\n isOtherAccountingMissions, isOtherJuridicalMissions, isAdditionalPresta, isOtherSocialMission, isOnlyPrevi, isOnlySocial, isOnlyJuridic, isCreation, isExpress, calculateScoringOfPrestation,\n};"]}
|
|
1
|
+
{"version":3,"file":"prestation.js","sourceRoot":"","sources":["../../../ts/utils/prestation.ts"],"names":[],"mappings":"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","sourcesContent":["import { IPrestation, IPrestationList } from '../types';\nimport { PrestationDetail, PrestationType } from '../types/Enum/PrestationType';\nimport { PrestationOptionType, PrestationOption } from '../types/Enum/PrestationOption';\nimport { PriceGridClementine } from '../types/Enum/PriceGridClementine';\nimport { PriceGridPourcentage } from '../types/Enum/PriceGridPourcentage';\nimport { PriceGridLegalstart } from '../types/Enum/PriceGridLegalstart';\nimport { ClosingType } from '../types/Enum/ClosingType';\nimport { getBrandNameByNodeEnv } from './brands';\nimport * as dayjs from 'dayjs';\n\ntype priceGridBrand = {\n idTypeBrand: number,\n price: priceGrid[]\n};\n\ntype priceGrid = {\n idPrestationList: number[],\n minimumMonthlyPayment?: monthlyPayment[],\n maximumMonthlyPayment?: monthlyPayment[],\n turnoverCreatedYear?: turnover[],\n turnoverPastYear?: turnover[],\n turnoverMonthly?: turnover[],\n turnoverYearly?: turnover[],\n employee?: employee[],\n partner?: employee[],\n properties?: propertie[],\n vatRegimeMonthly?: vatRegime[],\n vatRegimeYearly?: vatRegime[],\n};\n\ntype monthlyPayment = {\n id: number,\n month: number,\n};\n\ntype turnover = {\n turnoverValue: number,\n price: number,\n};\n\ntype employee = {\n amountMinimum: number,\n amountMaximum: number,\n price: number,\n};\n\ntype propertie = {\n amount: number,\n price: number,\n};\n\ntype vatRegime = {\n type: number,\n price: number,\n};\n\nconst isOtherAccountingMissions = (idPrestationList: number): boolean => [\n PrestationType.PREVISIONNEL,\n PrestationType.BILAN_INTERMEDIAIRE,\n PrestationType.AVANCE_OU_ABANDON_COMPTE_COURANT_ASSOCIE,\n PrestationType.AUTRE_MISSION_COMPTABLE,\n PrestationType.TVS,\n PrestationType.ETUDE_FISCALE,\n PrestationType.BILAN_PREVISIONNEL].includes(idPrestationList);\n\nconst isOtherJuridicalMissions = (isJuridique:boolean, isCatalog:boolean, idPrestationList: number): boolean => idPrestationList !== PrestationType.GESTION_JURIDIQUE && isCatalog && isJuridique;\n\nconst isOtherSocialMission = (idPrestationList: number): boolean => idPrestationList === PrestationType.AUTRE_MISSION_SOCIALE_HORS_PAIE;\n\nconst isAdditionalPresta = (hidden:boolean, isCatalog:boolean): boolean => !hidden && isCatalog;\n\nconst isOnlyPrevi = (idPrestationList: number[]):boolean => !idPrestationList.filter((idPL:number) => ![PrestationType.PREVISIONNEL, PrestationType.BILAN_PREVISIONNEL, PrestationType.PV_AG].includes(idPL)).length;\n\nconst isOnlySocial = (idPrestationList: number[]):boolean => !idPrestationList.filter((idPL:number) => ![PrestationType.FRUCTUPAIE, PrestationType.SOCIAL].includes(idPL)).length;\n\nconst isOnlyJuridic = (idPrestationList: number[]):boolean => !idPrestationList.filter((idPL:number) => ![PrestationType.GESTION_JURIDIQUE].includes(idPL)).length;\n\nconst isCreation = (idPrestationList: number[]):boolean => idPrestationList.includes(PrestationType.CREATION_SOCIETE);\n\nconst isExpress = (idPrestationList: number):boolean => {\n const prestationDetailValues = Object.values(PrestationDetail) as any;\n const prestaList = prestationDetailValues.find((pr:any) => pr.id === idPrestationList);\n return !!prestaList.isBack;\n};\n\nconst calculateScoringOfPrestation = (idPrestationType: PrestationType, prestations: IPrestation[]): number => {\n const prestationsSignedPaid = prestations.filter((prestation) => prestation.paid && prestation.signed && prestation.terminationList === null);\n\n // Get the list of prestations that are half price\n const prestationHalfPriceList = Object.values(PrestationDetail).filter((p) => p.isComptable && !p.isCatalog);\n const prestationHalfPriceIds = prestationHalfPriceList.map((t) => t.id);\n\n // Get the number of points for the new prestation\n const prestaDetails = Object.values(PrestationDetail).find((prestaDetail) => prestaDetail.id === idPrestationType);\n const numberPoint = prestaDetails?.point || 0;\n\n // Get list of prestations that are already done and check if one of them is in the list of prestations that are half price\n const prestationsExistIds = prestationsSignedPaid.map((prestation) => prestation.idPrestationList);\n const prestationHalfPriceAlreadyDoneIds = prestationsExistIds.filter((id) => prestationHalfPriceIds.includes(id));\n\n // If one of the prestations already done is in the list of prestations that are half price and if the idPrestationType is in prestationHalfPriceIds, return 50% of points\n if (prestationHalfPriceAlreadyDoneIds.length && prestationHalfPriceIds.includes(idPrestationType)) return Math.floor(numberPoint * 0.3);\n\n return numberPoint;\n};\n\nconst getPriceGrid = (idTypeBrand: number, idPrestationList: number): priceGrid | undefined => {\n let currentBrandPriceGrid: priceGridBrand | undefined;\n let currentPriceGrid: priceGrid | undefined;\n\n const currentEnvName = getBrandNameByNodeEnv(process.env.NODE_ENV);\n const listEnvEnum = {\n PriceGridClementine, PriceGridPourcentage, PriceGridLegalstart,\n };\n // @ts-ignore\n const currentPriceGridFile: priceGridBrand[] = listEnvEnum[`PriceGrid${currentEnvName}`];\n if (currentPriceGridFile) currentBrandPriceGrid = currentPriceGridFile.find((priceGrid: priceGridBrand) => priceGrid.idTypeBrand === idTypeBrand);\n if (currentBrandPriceGrid) currentPriceGrid = currentBrandPriceGrid?.price.find((price: priceGrid) => price.idPrestationList.includes(idPrestationList));\n return currentPriceGrid;\n};\n\nconst calculatePrestationPriceWithPriceGrid = (idPrestationList: number, endDate: string, NbrMonth: number, turnover: number, rentsNumber: number, employeesNumber: number, associatesNumber: number, idTypeBrand: number, idVatRegime: number, pastBalanceSheet: boolean, isYearly: boolean, totalMonth: number): { totalPrestation: number, reduceMonth: number } => {\n let totalPrestation: number = 0;\n let reduceMonth: number = 0;\n\n /* Récupération de la grille tarifaire */\n const currentPriceGrid: priceGrid | undefined = getPriceGrid(idTypeBrand, idPrestationList);\n \n if (currentPriceGrid) {\n let monthlyPrice: number | undefined;\n let yearlyPrice: number | undefined;\n let vatRegimePrice: number | undefined;\n\n /* Gestion du régime de TVA */\n if (currentPriceGrid.vatRegimeMonthly && !isYearly) vatRegimePrice = currentPriceGrid.vatRegimeMonthly?.find(regime => regime.type === idVatRegime)?.price;\n else if (currentPriceGrid.vatRegimeYearly && isYearly) vatRegimePrice = currentPriceGrid.vatRegimeYearly?.find(regime => regime.type === idVatRegime)?.price;\n\n /* Gestion des montants */\n if (currentPriceGrid.turnoverMonthly && !isYearly) monthlyPrice = currentPriceGrid.turnoverMonthly?.find(turn => turnover < turn.turnoverValue)?.price;\n else if (currentPriceGrid.properties) monthlyPrice = currentPriceGrid.properties?.find(property => property.amount === rentsNumber)?.price;\n else if (currentPriceGrid.employee) monthlyPrice = currentPriceGrid.employee?.find(emp => emp.amountMinimum <= employeesNumber && emp.amountMaximum >= employeesNumber)?.price;\n else if (currentPriceGrid.turnoverYearly && isYearly) yearlyPrice = currentPriceGrid.turnoverYearly?.find(turn => turnover < turn.turnoverValue)?.price;\n else if (!pastBalanceSheet && currentPriceGrid.turnoverCreatedYear) yearlyPrice = currentPriceGrid.turnoverCreatedYear?.find(turn => turnover < turn.turnoverValue)?.price;\n else if (pastBalanceSheet && currentPriceGrid.turnoverPastYear) yearlyPrice = currentPriceGrid.turnoverPastYear?.find(turn => turnover < turn.turnoverValue)?.price;\n else if (currentPriceGrid.partner) yearlyPrice = currentPriceGrid.partner?.find(part => part.amountMinimum <= associatesNumber && part.amountMaximum >= associatesNumber)?.price;\n const finalMonthlyPrice: number | undefined = (monthlyPrice ? monthlyPrice : 0) + (vatRegimePrice ? vatRegimePrice : 0);\n\n /* Gestion des mois */\n let cloturedPast: boolean = false;\n if (dayjs(endDate, 'YYYY-MM-DD').subtract(15, 'day').isBefore(dayjs())) cloturedPast = true;\n const minimumMonth: number | undefined = currentPriceGrid.minimumMonthlyPayment?.find(monthlyPayment => monthlyPayment.id === (cloturedPast ? ClosingType.OUTDATED : ClosingType.IN_PROGRESS))?.month;\n const maximumMonth: number | undefined = currentPriceGrid.maximumMonthlyPayment?.find(monthlyPayment => monthlyPayment.id === (cloturedPast ? ClosingType.OUTDATED : ClosingType.IN_PROGRESS))?.month;\n let monthNbr: number = NbrMonth;\n if (totalMonth > 0) monthNbr = monthNbr - totalMonth;\n if (minimumMonth && monthNbr < minimumMonth) monthNbr = minimumMonth;\n if (maximumMonth && monthNbr > maximumMonth) monthNbr = maximumMonth;\n\n reduceMonth = (monthNbr === NbrMonth - totalMonth ? totalMonth : 0);\n \n /* Prix Final */\n totalPrestation = (yearlyPrice ? yearlyPrice : finalMonthlyPrice * monthNbr);\n }\n return { totalPrestation, reduceMonth };\n};\n\nconst calculatePrestationPriceWithPrestationList = (prestationList: IPrestationList): number => {\n let totalPrestation: number = 0;\n\n totalPrestation = prestationList.price || 0;\n\n return totalPrestation;\n};\n\nconst calculatePrestationPrice = (idPrestationList: number, prestationList: IPrestationList, endDate: string, NbrMonth: number, turnover: number, rentsNumber: number, employeesNumber: number, associatesNumber: number, idTypeBrand: number, idVatRegime: number, pastBalanceSheet: boolean, optionsList: number[], totalPercentage: number, totalAmount: number, totalMonth: number, isYearly: boolean = false): { totalPrestation: number, reduceMonth: number } => {\n let totalPrestation: number = 0;\n let reduceMonth: number = 0;\n let totalWithReduce: { totalPrestation: number, reduceMonth: number } = { totalPrestation: 0, reduceMonth: 0 };\n\n /* Gestion du prix en fonction de la prestation */\n if (\n [\n PrestationType.COMPTA_PRO,\n PrestationType.COMPTA_PRO_EXPRESS,\n PrestationType.COMPTA_ENTREPRISE,\n PrestationType.COMPTA_ENTREPRISE_EXPRESS,\n PrestationType.COMPTA_SCI,\n PrestationType.COMPTA_SCI_EXPRESS,\n PrestationType.BILAN_PREVISIONNEL,\n PrestationType.COMPTA_PREMIUM,\n PrestationType.COMPTA_POURCENTAGE_PREMIUM,\n PrestationType.COMPTA_POURCENTAGE_PREMIUM_EXPRESS,\n PrestationType.COMPTA_POURCENTAGE,\n PrestationType.COMPTA_POURCENTAGE_EXPRESS,\n PrestationType.SOCIAL,\n PrestationType.GESTION_JURIDIQUE,\n PrestationType.COMPTA_PRO_COMPTASTART,\n PrestationType.COMPTA_PRO_COMPTASTART_EXPRESS,\n ].includes(idPrestationList)\n ) {\n totalWithReduce = calculatePrestationPriceWithPriceGrid(idPrestationList, endDate, NbrMonth, turnover, rentsNumber, employeesNumber, associatesNumber, idTypeBrand, idVatRegime, pastBalanceSheet, isYearly, totalMonth);\n totalPrestation = totalWithReduce.totalPrestation;\n reduceMonth = totalWithReduce.reduceMonth;\n } else {\n totalPrestation = calculatePrestationPriceWithPrestationList(prestationList);\n }\n if (totalPercentage > 0) totalPrestation = totalPrestation - (totalPrestation * (totalPercentage / 100));\n if (totalAmount > 0) totalPrestation = totalPrestation - totalAmount;\n if (prestationList.minimumPrice && totalPrestation < prestationList.minimumPrice) totalPrestation = prestationList.minimumPrice;\n /* Gestion des options */\n let OptionTotalPrice: number = 0;\n if (optionsList.length) {\n optionsList.forEach((optionId) => {\n const optionPrice: number | undefined = Object.values(PrestationOption).find((option) => option.id === optionId)?.price;\n if (optionPrice) OptionTotalPrice += optionPrice;\n });\n }\n totalPrestation += (OptionTotalPrice ? OptionTotalPrice : 0);\n\n return { totalPrestation, reduceMonth };\n};\n\nconst getPrestationOptions = (idPrestationList: number): PrestationOptionType[] => {\n const PrestationOptionList: PrestationOptionType[] = Object.values(PrestationOption).filter(option => option.brand.includes(getBrandNameByNodeEnv(process.env.NODE_ENV)));\n return PrestationOptionList.filter(option => option.prestationList.includes(idPrestationList));\n};\n\nconst isAbleToUpdatePrice = (idTypeBrand: number, idPrestationList: number, turnover: number, pastBalanceSheet: boolean): boolean => {\n /* Récupération de la grille tarifaire */\n const currentPriceGrid: priceGrid | undefined = getPriceGrid(idTypeBrand, idPrestationList);\n if (currentPriceGrid) {\n // @ts-ignore\n if ([PrestationType.COMPTA_PREMIUM, PrestationType.COMPTA_POURCENTAGE_PREMIUM, PrestationType.COMPTA_POURCENTAGE_PREMIUM_EXPRESS].includes(idPrestationList) && currentPriceGrid.turnoverMonthly[currentPriceGrid.turnoverMonthly.length - 2].turnoverValue < turnover) return true;\n // @ts-ignore\n else if ([PrestationType.COMPTA_POURCENTAGE, PrestationType.COMPTA_POURCENTAGE_EXPRESS].includes(idPrestationList) && currentPriceGrid.turnoverMonthly[currentPriceGrid.turnoverMonthly.length - 1].turnoverValue < turnover) return true;\n // @ts-ignore\n else if ([PrestationType.BILAN_PREVISIONNEL].includes(idPrestationList) && !pastBalanceSheet && currentPriceGrid.turnoverCreatedYear[currentPriceGrid.turnoverCreatedYear.length - 1].turnoverValue < turnover) return true;\n // @ts-ignore\n else if ([PrestationType.BILAN_PREVISIONNEL].includes(idPrestationList) && pastBalanceSheet && currentPriceGrid.turnoverPastYear[currentPriceGrid.turnoverPastYear.length - 1].turnoverValue < turnover) return true;\n else return false;\n }\n return false;\n\n};\n\nexport {\n isOtherAccountingMissions, isOtherJuridicalMissions, isAdditionalPresta, isOtherSocialMission, isOnlyPrevi, isOnlySocial, isOnlyJuridic, isCreation, isExpress, calculateScoringOfPrestation, calculatePrestationPrice, getPrestationOptions, isAbleToUpdatePrice,\n};"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@silexpert/core",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.162",
|
|
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",
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { BasePaginate, ICommercialOffer, QueryAllCommercialOffer, QueryPaginateCommercialOffer } from '../../types';
|
|
2
|
+
import { Resource } from '../Resource';
|
|
3
|
+
|
|
4
|
+
export class CommercialOffer extends Resource {
|
|
5
|
+
/**
|
|
6
|
+
* Create un enregistrement dans la table CommercialOffer
|
|
7
|
+
* @param { ICommercialOffer } payload
|
|
8
|
+
* @returns { ICommercialOffer }
|
|
9
|
+
*/
|
|
10
|
+
public create(payload: ICommercialOffer): Promise<ICommercialOffer> {
|
|
11
|
+
return this.axios.$post('/commercial-offers', payload);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Get tous les enregistrements dans la table CommercialOffer
|
|
16
|
+
* @param { QueryAllCommercialOffer } params
|
|
17
|
+
* @returns { ICommercialOffer[] }
|
|
18
|
+
*/
|
|
19
|
+
public getAll(params: QueryAllCommercialOffer): Promise<ICommercialOffer[]> {
|
|
20
|
+
return this.axios.$get('/commercial-offers/all', { params });
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Get tous les enregistrements utilisable dans la table CommercialOffer
|
|
25
|
+
* @returns { ICommercialOffer[] }
|
|
26
|
+
*/
|
|
27
|
+
public getAllUsable(): Promise<ICommercialOffer[]> {
|
|
28
|
+
return this.axios.$get('/commercial-offers/all-usable');
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Get les enregistrements dans la table CommercialOffer sous format paginé
|
|
33
|
+
* @param { QueryPaginateCommercialOffer } params
|
|
34
|
+
* @returns { BasePaginate<ICommercialOffer> }
|
|
35
|
+
*/
|
|
36
|
+
public getPaginate(params: QueryPaginateCommercialOffer): Promise<BasePaginate<ICommercialOffer>> {
|
|
37
|
+
return this.axios.$get('/commercial-offers/paginate', { params });
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Update un enregistrement dans la table CommercialOffer
|
|
42
|
+
* @param { number } id
|
|
43
|
+
* @param { Partial<ICommercialOffer> } payload
|
|
44
|
+
* @returns { ICommercialOffer }
|
|
45
|
+
*/
|
|
46
|
+
public update(id: number, payload: Partial<ICommercialOffer>): Promise<ICommercialOffer> {
|
|
47
|
+
return this.axios.$put(`/commercial-offers/${id}`, payload);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Delete un enregistrement dans la table CommercialOffer
|
|
52
|
+
* @param { number } id
|
|
53
|
+
* @returns { boolean }
|
|
54
|
+
*/
|
|
55
|
+
public delete(id: number): Promise<boolean> {
|
|
56
|
+
return this.axios.$delete(`/commercial-offers/${id}`);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Get un enregistrement dans la table CommercialOffer
|
|
61
|
+
* @param { number } id
|
|
62
|
+
* @returns { ICommercialOffer }
|
|
63
|
+
*/
|
|
64
|
+
public get(id: number): Promise<ICommercialOffer> {
|
|
65
|
+
return this.axios.$get(`/commercial-offers/${id}`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
@@ -2,10 +2,30 @@ import { CancelToken } from 'axios';
|
|
|
2
2
|
import { Resource } from '../Resource';
|
|
3
3
|
import {
|
|
4
4
|
BasePaginate,
|
|
5
|
-
IPrestation, ISociety, PrestationType, QueryGetPaginatedSocietiesFromPrestation, QueryPrestation,
|
|
5
|
+
IPrestation, ISociety, PrestationType, QueryCreatePrestation, QueryGetPaginatedSocietiesFromPrestation, QueryPrestation, QueryUpdatePrestation,
|
|
6
6
|
} from '../../types';
|
|
7
7
|
|
|
8
8
|
export class Prestation extends Resource {
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Crée une prestationavec tous les éléments lié à celle-ci.
|
|
12
|
+
* @param { QueryCreatePrestation } params
|
|
13
|
+
* @returns { IPrestation }
|
|
14
|
+
*/
|
|
15
|
+
public create(params: QueryCreatePrestation): Promise<IPrestation> {
|
|
16
|
+
return this.axios.$post('/prestation', params);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Crée une prestationavec tous les éléments lié à celle-ci.
|
|
21
|
+
* @param { number } id
|
|
22
|
+
* @param { QueryUpdatePrestation } params
|
|
23
|
+
* @returns { IPrestation }
|
|
24
|
+
*/
|
|
25
|
+
public update(idPrestation: number, params: QueryUpdatePrestation): Promise<IPrestation> {
|
|
26
|
+
return this.axios.$put(`/prestation/${idPrestation}`, params);
|
|
27
|
+
}
|
|
28
|
+
|
|
9
29
|
/**
|
|
10
30
|
* retourne toutes les prestations juridique d'une société
|
|
11
31
|
* @param { number } id
|
package/ts/api/resources.ts
CHANGED
|
@@ -137,6 +137,7 @@ import { SalesContract } from './resources/SalesContract';
|
|
|
137
137
|
import { LeadsToPartners } from './resources/LeadsToPartners';
|
|
138
138
|
import { ChangeLog } from './resources/ChangeLog';
|
|
139
139
|
import { ConstitutionHistory } from './resources/ConstitutionHistory';
|
|
140
|
+
import { CommercialOffer } from './resources/CommercialOffer';
|
|
140
141
|
|
|
141
142
|
export const resources = {
|
|
142
143
|
simulation: Simulation,
|
|
@@ -278,4 +279,5 @@ export const resources = {
|
|
|
278
279
|
changeLog: ChangeLog,
|
|
279
280
|
constitutionHistory: ConstitutionHistory,
|
|
280
281
|
das: Das,
|
|
282
|
+
commercialOffer: CommercialOffer,
|
|
281
283
|
};
|
|
@@ -434,10 +434,11 @@ export const BrandClementine = [
|
|
|
434
434
|
idTypeBrand: 6,
|
|
435
435
|
name: 'Klems',
|
|
436
436
|
commercialName: 'Klems',
|
|
437
|
-
urlApp: 'https://
|
|
437
|
+
urlApp: 'https://app.clementine.fr',
|
|
438
438
|
urlApi1: 'https://api.compta-clementine.fr',
|
|
439
439
|
urlApi2: 'https://api-next.compta-clementine.fr',
|
|
440
|
-
|
|
440
|
+
urlExpert: 'https://expert.compta-clementine.fr',
|
|
441
|
+
urlClient: 'https://www.clementine.fr',
|
|
441
442
|
listPhones: {
|
|
442
443
|
contact: '03 83 93 14 14',
|
|
443
444
|
qualite: '03 83 93 30 44',
|
|
@@ -511,21 +512,21 @@ export const BrandClementine = [
|
|
|
511
512
|
name: 'page_intro',
|
|
512
513
|
needBgImage: true,
|
|
513
514
|
versionable: false,
|
|
514
|
-
idPrestationType: [PrestationType.SOCIAL, PrestationType.COMPTA_MICRO_KLEMS, PrestationType.COMPTA_EI_KLEMS, PrestationType.COMPTA_LOUEUR_MEUBLE_NON_PRO_KLEMS],
|
|
515
|
+
idPrestationType: [PrestationType.SOCIAL, PrestationType.COMPTA_MICRO_KLEMS, PrestationType.COMPTA_EI_KLEMS, PrestationType.COMPTA_LOUEUR_MEUBLE_NON_PRO_KLEMS, PrestationType.COMPTA_MICRO_KLEMS_EXPRESS, PrestationType.COMPTA_EI_KLEMS_EXPRESS, PrestationType.COMPTA_LOUEUR_MEUBLE_NON_PRO_KLEMS_EXPRESS],
|
|
515
516
|
},
|
|
516
517
|
{
|
|
517
518
|
label: 'Page chiffres',
|
|
518
519
|
name: 'page_numbers',
|
|
519
520
|
needBgImage: true,
|
|
520
521
|
versionable: false,
|
|
521
|
-
idPrestationType: [PrestationType.SOCIAL, PrestationType.COMPTA_MICRO_KLEMS, PrestationType.COMPTA_EI_KLEMS, PrestationType.COMPTA_LOUEUR_MEUBLE_NON_PRO_KLEMS],
|
|
522
|
+
idPrestationType: [PrestationType.SOCIAL, PrestationType.COMPTA_MICRO_KLEMS, PrestationType.COMPTA_EI_KLEMS, PrestationType.COMPTA_LOUEUR_MEUBLE_NON_PRO_KLEMS, PrestationType.COMPTA_MICRO_KLEMS_EXPRESS, PrestationType.COMPTA_EI_KLEMS_EXPRESS, PrestationType.COMPTA_LOUEUR_MEUBLE_NON_PRO_KLEMS_EXPRESS],
|
|
522
523
|
},
|
|
523
524
|
{
|
|
524
525
|
label: 'Page simplifié',
|
|
525
526
|
name: 'page_simplified',
|
|
526
527
|
needBgImage: true,
|
|
527
528
|
versionable: false,
|
|
528
|
-
idPrestationType: [PrestationType.SOCIAL, PrestationType.COMPTA_MICRO_KLEMS, PrestationType.COMPTA_EI_KLEMS, PrestationType.COMPTA_LOUEUR_MEUBLE_NON_PRO_KLEMS],
|
|
529
|
+
idPrestationType: [PrestationType.SOCIAL, PrestationType.COMPTA_MICRO_KLEMS, PrestationType.COMPTA_EI_KLEMS, PrestationType.COMPTA_LOUEUR_MEUBLE_NON_PRO_KLEMS, PrestationType.COMPTA_MICRO_KLEMS_EXPRESS, PrestationType.COMPTA_EI_KLEMS_EXPRESS, PrestationType.COMPTA_LOUEUR_MEUBLE_NON_PRO_KLEMS_EXPRESS],
|
|
529
530
|
},
|
|
530
531
|
{
|
|
531
532
|
label: 'Détail de la lettre de mission',
|
|
@@ -539,35 +540,35 @@ export const BrandClementine = [
|
|
|
539
540
|
name: 'page_detail_ldm_back',
|
|
540
541
|
needBgImage: false,
|
|
541
542
|
versionable: false,
|
|
542
|
-
idPrestationType: Object.values(PrestationDetail).filter(p => p.isBack && !p.hidden && [PrestationType.SOCIAL, PrestationType.
|
|
543
|
+
idPrestationType: Object.values(PrestationDetail).filter(p => p.isBack && !p.hidden && [PrestationType.SOCIAL, PrestationType.COMPTA_MICRO_KLEMS_EXPRESS, PrestationType.COMPTA_EI_KLEMS_EXPRESS, PrestationType.COMPTA_LOUEUR_MEUBLE_NON_PRO_KLEMS_EXPRESS].includes(p.id!)).map(({ id }) => id), // Prestations express
|
|
543
544
|
},
|
|
544
545
|
{
|
|
545
546
|
label: 'Forfait Expertise Micro',
|
|
546
547
|
name: 'bloc_compta_micro',
|
|
547
548
|
needBgImage: false,
|
|
548
549
|
versionable: false,
|
|
549
|
-
idPrestationType: [PrestationType.COMPTA_MICRO_KLEMS],
|
|
550
|
+
idPrestationType: [PrestationType.COMPTA_MICRO_KLEMS, PrestationType.COMPTA_MICRO_KLEMS_EXPRESS],
|
|
550
551
|
},
|
|
551
552
|
{
|
|
552
553
|
label: 'Forfait Expertise Entreprise individuelle',
|
|
553
554
|
name: 'bloc_entreprise_individuelle',
|
|
554
555
|
needBgImage: false,
|
|
555
556
|
versionable: false,
|
|
556
|
-
idPrestationType: [PrestationType.COMPTA_EI_KLEMS],
|
|
557
|
+
idPrestationType: [PrestationType.COMPTA_EI_KLEMS, PrestationType.COMPTA_EI_KLEMS_EXPRESS],
|
|
557
558
|
},
|
|
558
559
|
{
|
|
559
560
|
label: 'Forfait Expertise Loueur meublé non pro',
|
|
560
561
|
name: 'bloc_compta_loueur_meuble_non_pro',
|
|
561
562
|
needBgImage: false,
|
|
562
563
|
versionable: false,
|
|
563
|
-
idPrestationType: [PrestationType.COMPTA_LOUEUR_MEUBLE_NON_PRO_KLEMS],
|
|
564
|
+
idPrestationType: [PrestationType.COMPTA_LOUEUR_MEUBLE_NON_PRO_KLEMS, PrestationType.COMPTA_LOUEUR_MEUBLE_NON_PRO_KLEMS_EXPRESS],
|
|
564
565
|
},
|
|
565
566
|
{
|
|
566
567
|
label: 'Forfait social (TTC)',
|
|
567
568
|
name: 'bloc_social_ttc',
|
|
568
569
|
needBgImage: false,
|
|
569
570
|
versionable: true,
|
|
570
|
-
idPrestationType: [PrestationType.SOCIAL, PrestationType.COMPTA_MICRO_KLEMS, PrestationType.COMPTA_LOUEUR_MEUBLE_NON_PRO_KLEMS],
|
|
571
|
+
idPrestationType: [PrestationType.SOCIAL, PrestationType.COMPTA_MICRO_KLEMS, PrestationType.COMPTA_MICRO_KLEMS_EXPRESS, PrestationType.COMPTA_LOUEUR_MEUBLE_NON_PRO_KLEMS, PrestationType.COMPTA_LOUEUR_MEUBLE_NON_PRO_KLEMS_EXPRESS],
|
|
571
572
|
keyName: 'idPrestationSocial',
|
|
572
573
|
},
|
|
573
574
|
{
|
|
@@ -575,13 +576,13 @@ export const BrandClementine = [
|
|
|
575
576
|
name: 'bloc_social_ht',
|
|
576
577
|
needBgImage: false,
|
|
577
578
|
versionable: true,
|
|
578
|
-
idPrestationType: [PrestationType.COMPTA_EI_KLEMS],
|
|
579
|
+
idPrestationType: [PrestationType.COMPTA_EI_KLEMS, PrestationType.COMPTA_EI_KLEMS_EXPRESS],
|
|
579
580
|
keyName: 'idPrestationSocial',
|
|
580
581
|
},
|
|
581
582
|
{
|
|
582
583
|
label: 'Forfait Création d\'entreprise (TTC)',
|
|
583
584
|
name: 'bloc_creation_entreprise_ttc',
|
|
584
|
-
idPrestationType: [PrestationType.SOCIAL, PrestationType.COMPTA_MICRO_KLEMS, PrestationType.COMPTA_LOUEUR_MEUBLE_NON_PRO_KLEMS],
|
|
585
|
+
idPrestationType: [PrestationType.SOCIAL, PrestationType.COMPTA_MICRO_KLEMS, PrestationType.COMPTA_MICRO_KLEMS_EXPRESS, PrestationType.COMPTA_LOUEUR_MEUBLE_NON_PRO_KLEMS, PrestationType.COMPTA_LOUEUR_MEUBLE_NON_PRO_KLEMS_EXPRESS],
|
|
585
586
|
needBgImage: false,
|
|
586
587
|
versionable: true,
|
|
587
588
|
keyName: 'idPrestationCreation',
|
|
@@ -589,7 +590,7 @@ export const BrandClementine = [
|
|
|
589
590
|
{
|
|
590
591
|
label: 'Forfait Création d\'entreprise (HT)',
|
|
591
592
|
name: 'bloc_creation_entreprise_ht',
|
|
592
|
-
idPrestationType:[PrestationType.COMPTA_EI_KLEMS],
|
|
593
|
+
idPrestationType:[PrestationType.COMPTA_EI_KLEMS, PrestationType.COMPTA_EI_KLEMS_EXPRESS],
|
|
593
594
|
needBgImage: false,
|
|
594
595
|
versionable: true,
|
|
595
596
|
keyName: 'idPrestationCreation',
|
|
@@ -599,14 +600,14 @@ export const BrandClementine = [
|
|
|
599
600
|
name: 'bloc_tax_audit_ttc',
|
|
600
601
|
needBgImage: false,
|
|
601
602
|
versionable: true,
|
|
602
|
-
idPrestationType: [PrestationType.SOCIAL, PrestationType.COMPTA_MICRO_KLEMS, PrestationType.COMPTA_LOUEUR_MEUBLE_NON_PRO_KLEMS],
|
|
603
|
+
idPrestationType: [PrestationType.SOCIAL, PrestationType.COMPTA_MICRO_KLEMS, PrestationType.COMPTA_MICRO_KLEMS_EXPRESS, PrestationType.COMPTA_LOUEUR_MEUBLE_NON_PRO_KLEMS, PrestationType.COMPTA_LOUEUR_MEUBLE_NON_PRO_KLEMS_EXPRESS],
|
|
603
604
|
keyName: 'idPrestationControleFiscal',
|
|
604
605
|
},
|
|
605
606
|
{
|
|
606
607
|
label: 'Accompagnement contrôle fiscal (HT)',
|
|
607
608
|
name: 'bloc_tax_audit_ht',
|
|
608
609
|
needBgImage: false,
|
|
609
|
-
idPrestationType: [PrestationType.COMPTA_EI_KLEMS],
|
|
610
|
+
idPrestationType: [PrestationType.COMPTA_EI_KLEMS, PrestationType.COMPTA_EI_KLEMS_EXPRESS],
|
|
610
611
|
versionable: true,
|
|
611
612
|
keyName: 'idPrestationControleFiscal',
|
|
612
613
|
},
|
|
@@ -614,35 +615,35 @@ export const BrandClementine = [
|
|
|
614
615
|
label: 'Signature',
|
|
615
616
|
name: 'bloc_sign',
|
|
616
617
|
needBgImage: false,
|
|
617
|
-
idPrestationType: [PrestationType.SOCIAL, PrestationType.COMPTA_MICRO_KLEMS, PrestationType.COMPTA_EI_KLEMS, PrestationType.COMPTA_LOUEUR_MEUBLE_NON_PRO_KLEMS],
|
|
618
|
+
idPrestationType: [PrestationType.SOCIAL, PrestationType.COMPTA_MICRO_KLEMS, PrestationType.COMPTA_EI_KLEMS, PrestationType.COMPTA_LOUEUR_MEUBLE_NON_PRO_KLEMS, PrestationType.COMPTA_MICRO_KLEMS_EXPRESS, PrestationType.COMPTA_EI_KLEMS_EXPRESS, PrestationType.COMPTA_LOUEUR_MEUBLE_NON_PRO_KLEMS_EXPRESS],
|
|
618
619
|
versionable: false,
|
|
619
620
|
},
|
|
620
621
|
{
|
|
621
622
|
label: 'Conditions Générals de Vente (CGV) 1/2',
|
|
622
623
|
name: 'bloc_cgv_first',
|
|
623
624
|
needBgImage: false,
|
|
624
|
-
idPrestationType: [PrestationType.SOCIAL, PrestationType.COMPTA_MICRO_KLEMS, PrestationType.COMPTA_EI_KLEMS, PrestationType.COMPTA_LOUEUR_MEUBLE_NON_PRO_KLEMS],
|
|
625
|
+
idPrestationType: [PrestationType.SOCIAL, PrestationType.COMPTA_MICRO_KLEMS, PrestationType.COMPTA_EI_KLEMS, PrestationType.COMPTA_LOUEUR_MEUBLE_NON_PRO_KLEMS, PrestationType.COMPTA_MICRO_KLEMS_EXPRESS, PrestationType.COMPTA_EI_KLEMS_EXPRESS, PrestationType.COMPTA_LOUEUR_MEUBLE_NON_PRO_KLEMS_EXPRESS],
|
|
625
626
|
versionable: false,
|
|
626
627
|
},
|
|
627
628
|
{
|
|
628
629
|
label: 'Conditions Générals de Vente (CGV) 2/2',
|
|
629
630
|
name: 'bloc_cgv_second',
|
|
630
631
|
needBgImage: false,
|
|
631
|
-
idPrestationType: [PrestationType.SOCIAL, PrestationType.COMPTA_MICRO_KLEMS, PrestationType.COMPTA_EI_KLEMS, PrestationType.COMPTA_LOUEUR_MEUBLE_NON_PRO_KLEMS],
|
|
632
|
+
idPrestationType: [PrestationType.SOCIAL, PrestationType.COMPTA_MICRO_KLEMS, PrestationType.COMPTA_EI_KLEMS, PrestationType.COMPTA_LOUEUR_MEUBLE_NON_PRO_KLEMS, PrestationType.COMPTA_MICRO_KLEMS_EXPRESS, PrestationType.COMPTA_EI_KLEMS_EXPRESS, PrestationType.COMPTA_LOUEUR_MEUBLE_NON_PRO_KLEMS_EXPRESS],
|
|
632
633
|
versionable: false,
|
|
633
634
|
},
|
|
634
635
|
{
|
|
635
636
|
label: 'Mandat de prélèvement SEPA',
|
|
636
637
|
name: 'bloc_sepa',
|
|
637
638
|
needBgImage: false,
|
|
638
|
-
idPrestationType: [PrestationType.SOCIAL, PrestationType.COMPTA_MICRO_KLEMS, PrestationType.COMPTA_EI_KLEMS, PrestationType.COMPTA_LOUEUR_MEUBLE_NON_PRO_KLEMS],
|
|
639
|
+
idPrestationType: [PrestationType.SOCIAL, PrestationType.COMPTA_MICRO_KLEMS, PrestationType.COMPTA_EI_KLEMS, PrestationType.COMPTA_LOUEUR_MEUBLE_NON_PRO_KLEMS, PrestationType.COMPTA_MICRO_KLEMS_EXPRESS, PrestationType.COMPTA_EI_KLEMS_EXPRESS, PrestationType.COMPTA_LOUEUR_MEUBLE_NON_PRO_KLEMS_EXPRESS],
|
|
639
640
|
versionable: false,
|
|
640
641
|
},
|
|
641
642
|
{
|
|
642
643
|
label: 'Pièces à nous envoyer',
|
|
643
644
|
name: 'bloc_send_files',
|
|
644
645
|
needBgImage: false,
|
|
645
|
-
idPrestationType: [PrestationType.SOCIAL, PrestationType.COMPTA_MICRO_KLEMS, PrestationType.COMPTA_EI_KLEMS, PrestationType.COMPTA_LOUEUR_MEUBLE_NON_PRO_KLEMS],
|
|
646
|
+
idPrestationType: [PrestationType.SOCIAL, PrestationType.COMPTA_MICRO_KLEMS, PrestationType.COMPTA_EI_KLEMS, PrestationType.COMPTA_LOUEUR_MEUBLE_NON_PRO_KLEMS, PrestationType.COMPTA_MICRO_KLEMS_EXPRESS, PrestationType.COMPTA_EI_KLEMS_EXPRESS, PrestationType.COMPTA_LOUEUR_MEUBLE_NON_PRO_KLEMS_EXPRESS],
|
|
646
647
|
versionable: false,
|
|
647
648
|
},
|
|
648
649
|
],
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { List } from '../Interface/enum/Util';
|
|
2
|
+
|
|
3
|
+
export enum ClosingType {
|
|
4
|
+
IN_PROGRESS = 1,
|
|
5
|
+
OUTDATED = 2,
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export const ClosingTypeList: List = [
|
|
9
|
+
{
|
|
10
|
+
id: ClosingType.IN_PROGRESS,
|
|
11
|
+
label: 'Clôture en cours',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
id: ClosingType.OUTDATED,
|
|
15
|
+
label: 'Clôture dépassée',
|
|
16
|
+
},
|
|
17
|
+
];
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { PrestationType } from './PrestationType';
|
|
2
|
+
|
|
3
|
+
type commercialOfferTypeAmount = {
|
|
4
|
+
id: number;
|
|
5
|
+
label: string;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
export type CommercialOfferTypeType = {
|
|
9
|
+
id: number;
|
|
10
|
+
label: string;
|
|
11
|
+
amountType: commercialOfferTypeAmount;
|
|
12
|
+
idPrestationList: number[];
|
|
13
|
+
isComptable: boolean | null;
|
|
14
|
+
isCatalog: boolean | null;
|
|
15
|
+
isBack: boolean | null;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export const CommercialOfferAmountType = {
|
|
19
|
+
PERCENTAGE: {
|
|
20
|
+
id: 1,
|
|
21
|
+
label: '%',
|
|
22
|
+
},
|
|
23
|
+
MONTH: {
|
|
24
|
+
id: 2,
|
|
25
|
+
label: 'Mois',
|
|
26
|
+
},
|
|
27
|
+
MONEY: {
|
|
28
|
+
id: 3,
|
|
29
|
+
label: '€',
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export const CommercialOfferTypeDetail = {
|
|
34
|
+
RECOVERY_MONTH : {
|
|
35
|
+
id: 1,
|
|
36
|
+
label: '% de reprise sur les mois',
|
|
37
|
+
text: '%value% % offert, valable jusqu\'au %dateEnd%.',
|
|
38
|
+
amountType: CommercialOfferAmountType.PERCENTAGE,
|
|
39
|
+
idPrestationList: [],
|
|
40
|
+
isComptable: true,
|
|
41
|
+
isCatalog: false,
|
|
42
|
+
isBack: false,
|
|
43
|
+
},
|
|
44
|
+
MONTH_OFFERED : {
|
|
45
|
+
id: 2,
|
|
46
|
+
label: 'Nb de mois offert',
|
|
47
|
+
text: '%value% mois offert, valable jusqu\'au %dateEnd%.',
|
|
48
|
+
amountType: CommercialOfferAmountType.MONTH,
|
|
49
|
+
idPrestationList: [],
|
|
50
|
+
isComptable: true,
|
|
51
|
+
isCatalog: false,
|
|
52
|
+
isBack: true,
|
|
53
|
+
},
|
|
54
|
+
AMOUNT_OFFERED : {
|
|
55
|
+
id: 3,
|
|
56
|
+
label: 'Montant offert',
|
|
57
|
+
text: '%value% euros offert, valable jusqu\'au %dateEnd%.',
|
|
58
|
+
amountType: CommercialOfferAmountType.MONEY,
|
|
59
|
+
idPrestationList: [],
|
|
60
|
+
isComptable: true,
|
|
61
|
+
isCatalog: false,
|
|
62
|
+
isBack: false,
|
|
63
|
+
},
|
|
64
|
+
SPONSORSHIP : {
|
|
65
|
+
id: 4,
|
|
66
|
+
label: 'Parrainage',
|
|
67
|
+
text: '%value% euros de parrainage, valable jusqu\'au %dateEnd%.',
|
|
68
|
+
amountType: CommercialOfferAmountType.MONEY,
|
|
69
|
+
idPrestationList: [],
|
|
70
|
+
isComptable: true,
|
|
71
|
+
isCatalog: false,
|
|
72
|
+
isBack: null,
|
|
73
|
+
},
|
|
74
|
+
COMPANY_SETUP: {
|
|
75
|
+
id: 5,
|
|
76
|
+
label: '% de la création d\'entreprise',
|
|
77
|
+
text: 'Création offerte, valable jusqu\'au %dateEnd%.',
|
|
78
|
+
amountType: CommercialOfferAmountType.PERCENTAGE,
|
|
79
|
+
idPrestationList: [PrestationType.CREATION_SOCIETE],
|
|
80
|
+
isComptable: null,
|
|
81
|
+
isCatalog: null,
|
|
82
|
+
isBack: null,
|
|
83
|
+
},
|
|
84
|
+
};
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
import { PrestationType } from './PrestationType';
|
|
2
2
|
|
|
3
|
+
export type PrestationOptionType = {
|
|
4
|
+
id: number;
|
|
5
|
+
name: string;
|
|
6
|
+
description: string | null;
|
|
7
|
+
price: number;
|
|
8
|
+
brand: string[];
|
|
9
|
+
prestationList: PrestationType[];
|
|
10
|
+
};
|
|
11
|
+
|
|
3
12
|
export const PrestationOption = {
|
|
4
13
|
BUSINESS_PLAN_OPTION_1: {
|
|
5
14
|
id: 1,
|