@silexpert/core 1.3.206-esm-2 → 1.3.206
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/types/Enum/TaskResponseType.d.ts.map +1 -1
- package/dist/cjs/types/Enum/TaskResponseType.js +0 -11
- package/dist/cjs/types/Enum/TaskResponseType.js.map +1 -1
- package/dist/cjs/types/Enum/Unit.js +1 -1
- package/dist/cjs/types/Enum/Unit.js.map +1 -1
- package/dist/cjs/utils/checkup.d.ts.map +1 -1
- package/dist/cjs/utils/checkup.js +2 -3
- package/dist/cjs/utils/checkup.js.map +1 -1
- package/dist/cjs/utils/commercialManagement/document.js +4 -4
- package/dist/cjs/utils/commercialManagement/document.js.map +1 -1
- package/dist/cjs/utils/commercialManagement/recurrence.js +7 -7
- package/dist/cjs/utils/commercialManagement/recurrence.js.map +1 -1
- package/dist/cjs/utils/commercialOffer.d.ts.map +1 -1
- package/dist/cjs/utils/commercialOffer.js +4 -6
- package/dist/cjs/utils/commercialOffer.js.map +1 -1
- package/dist/cjs/utils/date.d.ts.map +1 -1
- package/dist/cjs/utils/date.js +8 -15
- package/dist/cjs/utils/date.js.map +1 -1
- package/dist/cjs/utils/documents.js +3 -3
- package/dist/cjs/utils/documents.js.map +1 -1
- package/dist/cjs/utils/email.js +1 -1
- package/dist/cjs/utils/email.js.map +1 -1
- package/dist/cjs/utils/exercice.js +7 -7
- package/dist/cjs/utils/exercice.js.map +1 -1
- package/dist/cjs/utils/payment.js +23 -23
- package/dist/cjs/utils/payment.js.map +1 -1
- package/dist/cjs/utils/prestation.js +3 -3
- package/dist/cjs/utils/prestation.js.map +1 -1
- package/dist/cjs/utils/quotation.js +2 -2
- package/dist/cjs/utils/quotation.js.map +1 -1
- package/dist/cjs/utils/societyApproval.js +7 -7
- package/dist/cjs/utils/societyApproval.js.map +1 -1
- package/dist/cjs/utils/tests/payment.spec.js +42 -42
- package/dist/cjs/utils/tests/payment.spec.js.map +1 -1
- package/dist/cjs/utils/vat/3310/century24.js +8 -8
- package/dist/cjs/utils/vat/3310/century24.js.map +1 -1
- package/dist/cjs/utils/vat/3310/century25.js +8 -8
- package/dist/cjs/utils/vat/3310/century25.js.map +1 -1
- package/dist/cjs/utils/vat/3310/century26.js +8 -8
- package/dist/cjs/utils/vat/3310/century26.js.map +1 -1
- package/dist/cjs/utils/vat/3514/century22.js +5 -5
- package/dist/cjs/utils/vat/3514/century22.js.map +1 -1
- package/dist/cjs/utils/vat/3517/century25.js +66 -66
- package/dist/cjs/utils/vat/3517/century25.js.map +1 -1
- package/dist/cjs/utils/vat/3517/century26.js +13 -13
- package/dist/cjs/utils/vat/3517/century26.js.map +1 -1
- package/dist/cjs/utils/vat/3519/century17.js +3 -3
- package/dist/cjs/utils/vat/3519/century17.js.map +1 -1
- package/dist/cjs/utils/vat/3519/century23.js +3 -3
- package/dist/cjs/utils/vat/3519/century23.js.map +1 -1
- package/dist/cjs/utils/vat/centuries.js +7 -7
- package/dist/cjs/utils/vat/centuries.js.map +1 -1
- package/dist/cjs/utils/vat/registration.js +4 -4
- package/dist/cjs/utils/vat/registration.js.map +1 -1
- package/dist/mjs/types/Enum/TaskResponseType.d.ts.map +1 -1
- package/dist/mjs/types/Enum/TaskResponseType.js +0 -11
- package/dist/mjs/types/Enum/TaskResponseType.js.map +1 -1
- package/dist/mjs/types/Enum/Unit.js +1 -1
- package/dist/mjs/types/Enum/Unit.js.map +1 -1
- package/dist/mjs/utils/checkup.d.ts.map +1 -1
- package/dist/mjs/utils/checkup.js +1 -2
- package/dist/mjs/utils/checkup.js.map +1 -1
- package/dist/mjs/utils/commercialManagement/document.js +1 -1
- package/dist/mjs/utils/commercialManagement/document.js.map +1 -1
- package/dist/mjs/utils/commercialManagement/recurrence.js +5 -5
- package/dist/mjs/utils/commercialManagement/recurrence.js.map +1 -1
- package/dist/mjs/utils/commercialOffer.d.ts.map +1 -1
- package/dist/mjs/utils/commercialOffer.js +4 -6
- package/dist/mjs/utils/commercialOffer.js.map +1 -1
- package/dist/mjs/utils/date.d.ts.map +1 -1
- package/dist/mjs/utils/date.js +5 -12
- package/dist/mjs/utils/date.js.map +1 -1
- package/dist/mjs/utils/documents.js +1 -1
- package/dist/mjs/utils/documents.js.map +1 -1
- package/dist/mjs/utils/email.js +1 -1
- package/dist/mjs/utils/email.js.map +1 -1
- package/dist/mjs/utils/exercice.js +1 -1
- package/dist/mjs/utils/exercice.js.map +1 -1
- package/dist/mjs/utils/payment.js +1 -1
- package/dist/mjs/utils/payment.js.map +1 -1
- package/dist/mjs/utils/prestation.js +1 -1
- package/dist/mjs/utils/prestation.js.map +1 -1
- package/dist/mjs/utils/quotation.js +1 -1
- package/dist/mjs/utils/quotation.js.map +1 -1
- package/dist/mjs/utils/societyApproval.js +1 -1
- package/dist/mjs/utils/societyApproval.js.map +1 -1
- package/dist/mjs/utils/tests/payment.spec.js +1 -1
- package/dist/mjs/utils/tests/payment.spec.js.map +1 -1
- package/dist/mjs/utils/vat/3310/century24.js +1 -1
- package/dist/mjs/utils/vat/3310/century24.js.map +1 -1
- package/dist/mjs/utils/vat/3310/century25.js +1 -1
- package/dist/mjs/utils/vat/3310/century25.js.map +1 -1
- package/dist/mjs/utils/vat/3310/century26.js +1 -1
- package/dist/mjs/utils/vat/3310/century26.js.map +1 -1
- package/dist/mjs/utils/vat/3514/century22.js +3 -3
- package/dist/mjs/utils/vat/3514/century22.js.map +1 -1
- package/dist/mjs/utils/vat/3517/century25.js +54 -54
- package/dist/mjs/utils/vat/3517/century25.js.map +1 -1
- package/dist/mjs/utils/vat/3517/century26.js +1 -1
- package/dist/mjs/utils/vat/3517/century26.js.map +1 -1
- package/dist/mjs/utils/vat/3519/century17.js +1 -1
- package/dist/mjs/utils/vat/3519/century17.js.map +1 -1
- package/dist/mjs/utils/vat/3519/century23.js +1 -1
- package/dist/mjs/utils/vat/3519/century23.js.map +1 -1
- package/dist/mjs/utils/vat/centuries.js +1 -1
- package/dist/mjs/utils/vat/centuries.js.map +1 -1
- package/dist/mjs/utils/vat/registration.js +1 -1
- package/dist/mjs/utils/vat/registration.js.map +1 -1
- package/package.json +3 -3
- package/ts/types/Enum/TaskResponseType.ts +0 -11
- package/ts/types/Enum/Unit.ts +1 -1
- package/ts/utils/checkup.ts +1 -2
- package/ts/utils/commercialManagement/document.ts +1 -1
- package/ts/utils/commercialManagement/recurrence.ts +5 -5
- package/ts/utils/commercialOffer.ts +3 -4
- package/ts/utils/date.ts +4 -9
- package/ts/utils/documents.ts +1 -1
- package/ts/utils/email.ts +1 -1
- package/ts/utils/exercice.ts +1 -1
- package/ts/utils/payment.ts +1 -1
- package/ts/utils/prestation.ts +1 -1
- package/ts/utils/quotation.ts +1 -1
- package/ts/utils/societyApproval.ts +1 -1
- package/ts/utils/tests/payment.spec.ts +1 -1
- package/ts/utils/vat/3310/century24.ts +1 -1
- package/ts/utils/vat/3310/century25.ts +1 -1
- package/ts/utils/vat/3310/century26.ts +1 -1
- package/ts/utils/vat/3514/century22.ts +3 -3
- package/ts/utils/vat/3517/century25.ts +54 -54
- package/ts/utils/vat/3517/century26.ts +1 -1
- package/ts/utils/vat/3519/century17.ts +1 -1
- package/ts/utils/vat/3519/century23.ts +1 -1
- package/ts/utils/vat/centuries.ts +1 -1
- package/ts/utils/vat/registration.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quotation.js","sourceRoot":"","sources":["../../../ts/utils/quotation.ts"],"names":[],"mappings":";;AAmBA,4CAsHC;AAGD,gDA+KC;AAED,gDAUC;AAvUD,iCAA0B;AAC1B,iEAA2E;AAC3E,qDAAkD;AAClD,yDAAsD;AAgBtD,SAAgB,gBAAgB,CAAC,MAA8B;IAC7D,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC;IAC1G,IACE,SAAS,KAAK,MAAM;QACpB,QAAQ,KAAK,MAAM;SACnB,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;QACtB,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAC9F,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,wBAAwB;IACxB,IAAI,SAAS;QAAE,SAAS,IAAI,CAAC,CAAC;IAE9B,qBAAqB;IACrB,IAAI,QAAQ;QAAE,SAAS,IAAI,CAAC,CAAC;IAE7B,qCAAqC;IACrC,IAAI,KAAK,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,SAAS,IAAI,EAAE,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,SAAS,IAAI,CAAC,CAAC;IACjB,CAAC;IAED,iCAAiC;IACjC,IAAI,4BAAW,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QACzD,SAAS,IAAI,CAAC,CAAC;IACjB,CAAC;SAAM,IAAI,CAAC,+BAAc,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QACpE,SAAS,IAAI,EAAE,CAAC;IAClB,CAAC;IAED,2BAA2B;IAC3B,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QACjE,SAAS,IAAI,EAAE,CAAC;IAClB,CAAC;SAAM,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QACpD,SAAS,IAAI,CAAC,CAAC;IACjB,CAAC;IAED,iCAAiC;IACjC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,GAAG,WAAW,CAAC,CAAC;QACnE,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,GAAG,WAAW,CAAC,CAAC;QACjE,IAAI,SAAS,CAAC,OAAO,EAAE,IAAI,QAAQ,CAAC,OAAO,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YACzF,SAAS,IAAI,EAAE,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,SAAS,IAAI,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,SAAS,IAAI,CAAC,CAAC;IACjB,CAAC;IAED,2BAA2B;IAC3B,gBAAgB;IAChB,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;QAClB,SAAS,IAAI,EAAE,CAAC;QAEhB,6BAA6B;IAC/B,CAAC;SAAM,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,SAAS,IAAI,CAAC,CAAC;QAEf,+BAA+B;IACjC,CAAC;SAAM,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,SAAS,IAAI,CAAC,CAAC;QAEf,oBAAoB;IACtB,CAAC;SAAM,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACrC,SAAS,IAAI,CAAC,CAAC;IACjB,CAAC;IAED,uDAAuD;IACvD,MAAM,WAAW,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC,MAAM,CAC3F,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CACjB,CAAC,MAAM,CAAC;IACT,QAAQ,WAAW,EAAE,CAAC;QACpB,KAAK,CAAC;YACJ,SAAS,IAAI,EAAE,CAAC;YAChB,MAAM;QACR,KAAK,CAAC;YACJ,SAAS,IAAI,CAAC,CAAC;YACf,MAAM;QACR,KAAK,CAAC;YACJ,SAAS,IAAI,CAAC,CAAC;YACf,MAAM;QACR,KAAK,CAAC;YACJ,SAAS,IAAI,CAAC,CAAC;YACf,MAAM;QACR,KAAK,CAAC;YACJ,SAAS,IAAI,CAAC,CAAC;YACf,MAAM;QACR;YACE,MAAM;IACV,CAAC;IAED,4DAA4D;IAC5D,IAAI,YAAY;QAAE,SAAS,IAAI,CAAC,CAAC;IAEjC,oCAAoC;IACpC,IAAI,CAAC,mBAAQ,CAAC,YAAY,EAAE,mBAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QACvE,SAAS,IAAI,EAAE,CAAC;IAClB,CAAC;SAAM,IACL;QACE,mBAAQ,CAAC,SAAS;QAClB,mBAAQ,CAAC,GAAG;QACZ,mBAAQ,CAAC,YAAY;QACrB,mBAAQ,CAAC,UAAU;QACnB,mBAAQ,CAAC,OAAO;QAChB,mBAAQ,CAAC,QAAQ;KAClB,CAAC,QAAQ,CAAC,cAAc,CAAC,EAC1B,CAAC;QACD,SAAS,IAAI,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,gKAAgK;AAChK,SAAgB,kBAAkB,CAChC,OAAiB,EACjB,cAA0B,EAC1B,UAAiC,EACjC,aAAiB,EACjB,OAAkB,EAClB,iBAAsC,EACtC,cAAmB,EACnB,aAAyB;;IAEzB,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAC1B,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAC1B,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,MAAM,eAAe,GAAG;QACtB,SAAS,EAAE,CAAC;QACZ,SAAS,EAAE,CAAC;QACZ,kBAAkB,EAAE,CAAC;QACrB,mBAAmB,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC;QACV,kBAAkB,EAAE,CAAC;QACrB,mBAAmB,EAAE,CAAC;QACtB,MAAM,EAAE,CAAC;QACT,UAAU,EAAE,CAAC;QACb,kBAAkB,EAAE,CAAC;QACrB,MAAM,EAAE,CAAC;QACT,WAAW,EAAE,CAAC;QACd,OAAO,EAAE,CAAC;KACX,CAAC;IAEF,uCAAuC;IACvC,MAAM,UAAU,GACd,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,IAAG,CAAC,CAAC,CAAC,CAAC,IAAA,eAAK,GAAE,CAAC,IAAI,CAAC,IAAA,eAAK,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3G,MAAM,WAAW,GAAG,UAAU,GAAG,GAAG,GAAG,CAAC,CAAC;IAEzC,0EAA0E;IAC1E,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,IACE,CAAC,uBAAU,CAAC,UAAU,EAAE,uBAAU,CAAC,qBAAqB,EAAE,uBAAU,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAC/F,OAAO,CAAC,YAAY,CACrB,EACD,CAAC;YACD,iBAAiB,IAAI,EAAE,CAAC;YACxB,eAAe,CAAC,SAAS,IAAI,EAAE,CAAC;QAClC,CAAC;aAAM,IACL,CAAC,uBAAU,CAAC,QAAQ,EAAE,uBAAU,CAAC,mBAAmB,EAAE,uBAAU,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,EACjH,CAAC;YACD,iBAAiB,IAAI,EAAE,CAAC;YACxB,eAAe,CAAC,SAAS,IAAI,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;IAED,4FAA4F;IAC5F,IAAI,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,IAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,YAAY,GAChB,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAClG,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YACvB,iBAAiB,IAAI,EAAE,CAAC;YACxB,eAAe,CAAC,SAAS,IAAI,EAAE,CAAC;QAClC,CAAC;aAAM,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YAC5B,iBAAiB,IAAI,EAAE,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YAClD,eAAe,CAAC,SAAS,IAAI,EAAE,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,mDAAmD;IACnD,IAAI,MAAA,OAAO,CAAC,oBAAoB,0CAAE,MAAM,EAAE,CAAC;QACzC,MAAM,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC;QACnH,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE;YAC5B,iBAAiB,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC;YAChD,eAAe,CAAC,kBAAkB,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,6CAA6C;IAC7C,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;QAC1B,iBAAiB,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,cAAc,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC;QACxE,eAAe,CAAC,mBAAmB,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,cAAc,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC;IAC5F,CAAC;IAED,0BAA0B;IAC1B,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;QACzB,iBAAiB,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,aAAa,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC;QACxE,eAAe,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,aAAa,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC;IAChF,CAAC;IAED,wBAAwB;IACxB,IAAI,MAAA,cAAc,CAAC,6BAA6B,0CAAE,MAAM,EAAE,CAAC;QACzD,yDAAyD;QACzD,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,qBAAqB,GAAG,GAAG,CAAC;QAChC,cAAc,CAAC,6BAA6B,CAAC,GAAG,CAAC,CAAC,EAAO,EAAE,EAAE;YAC3D,IAAI,EAAE,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;gBAC3B,eAAe,IAAI,CAAC,CAAC;YACvB,CAAC;YACD,OAAO,eAAe,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,IAAI,eAAe,KAAK,CAAC;YACvB,qBAAqB,GAAG,CAAC,eAAe,IAAG,MAAA,cAAc,CAAC,6BAA6B,0CAAE,MAAM,CAAA,CAAC,GAAG,GAAG,CAAC;QACzG,IAAI,qBAAqB,IAAI,EAAE,EAAE,CAAC;YAChC,iBAAiB,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,WAAW,CAAC,CAAC;YACjD,eAAe,CAAC,kBAAkB,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,WAAW,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACN,iBAAiB,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,WAAW,CAAC,CAAC;YACjD,eAAe,CAAC,kBAAkB,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,WAAW,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,IAAI,MAAA,cAAc,CAAC,4BAA4B,0CAAE,MAAM,EAAE,CAAC;QACxD,kBAAkB;QAClB,MAAM,OAAO,GAAG,cAAc,CAAC,4BAA4B,CAAC,MAAM,GAAG,cAAc,CAAC,uBAAuB,CAAC,MAAM,CAAC;QACnH,iBAAiB,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,GAAG,WAAW,CAAC,CAAC;QAC3D,eAAe,CAAC,mBAAmB,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,GAAG,WAAW,CAAC,CAAC;QAE7E,oBAAoB;QACpB,iBAAiB,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,cAAc,CAAC,uBAAuB,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC;QACjG,eAAe,CAAC,mBAAmB,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,cAAc,CAAC,uBAAuB,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC;IACrH,CAAC;IAED,UAAU;IACV,IAAI,UAAU,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YACrC,iBAAiB,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,WAAW,CAAC,CAAC;YACjD,eAAe,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,WAAW,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,iBAAiB,IAAI,EAAE,CAAC;YACxB,eAAe,CAAC,MAAM,IAAI,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,iBAAiB;IACjB,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAA,MAAA,OAAO,CAAC,aAAa,0CAAE,WAAW,CAAA,EAAE,CAAC;YACxC,iBAAiB,IAAI,EAAE,CAAC;YACxB,eAAe,CAAC,UAAU,IAAI,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IAED,uGAAuG;IACvG,IAAI,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,MAAM,EAAE,CAAC;QAC9B,iBAAiB,IAAI,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC;QAClD,eAAe,CAAC,kBAAkB,IAAI,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC;IACrE,CAAC;IAED,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,EAAE,CAAC;QACpB,iBAAiB,IAAI,EAAE,CAAC;QACxB,eAAe,CAAC,MAAM,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,iBAAiB,IAAI,EAAE,CAAC;QACxB,eAAe,CAAC,WAAW,IAAI,EAAE,CAAC;IACpC,CAAC;IAED,wBAAwB;IACxB,IAAI,MAAA,OAAO,CAAC,oBAAoB,0CAAE,MAAM,EAAE,CAAC;QACzC,MAAM,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,gBAAgB,KAAK,EAAE,CAAC,CAAC,CAAC,sBAAsB;QAC3I,mBAAmB,CAAC,OAAO,CAAC,GAAG,EAAE;YAC/B,iBAAiB,IAAI,EAAE,CAAC;YACxB,eAAe,CAAC,OAAO,IAAI,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,iBAAiB,GAAG,GAAG;QAAE,iBAAiB,GAAG,GAAG,CAAC;IACrD,IAAI,iBAAiB,GAAG,GAAG;QAAE,iBAAiB,GAAG,GAAG,CAAC;IAErD,SAAS,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;IAElD,IAAI,SAAS,GAAG,CAAC;QAAE,SAAS,GAAG,CAAC,CAAC;IAEjC,OAAO;QACL,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,eAAe;QACrB,SAAS,EAAE,MAAA,OAAO,CAAC,EAAE,mCAAI,CAAC;KAC3B,CAAC;AACJ,CAAC;AAED,SAAgB,kBAAkB,CAAC,SAAsB;IACvD,sDAAsD;IACtD,MAAM,MAAM,GAAG,KAAK,CAAC;IACrB,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["import dayjs from 'dayjs';\nimport { ForbidenDomain, BasicDomain } from '../types/Enum/MailDomainType';\nimport { Activity } from '../types/Enum/Activity';\nimport { ComptaType } from '../types/Enum/ComptaType';\nimport { ISociety } from '../types/Interface/models/ISociety';\nimport { ICotation } from '../types/Interface/models/ICotation';\nimport { BasePaginate, IPayment, IRating, IReport, ISocietyProceding, ReadClientQuotation } from '../types';\n\ntype getLeadQuotationParams = {\n firstname: string;\n lastname: string;\n phone: string;\n mail: string;\n annualTurnover: number;\n source: number;\n alreadyExist: boolean;\n activitySector: number;\n};\n\nexport function getLeadQuotation(params: getLeadQuotationParams): number {\n const { firstname, lastname, phone, mail, annualTurnover, source, alreadyExist, activitySector } = params;\n if (\n firstname === 'test' ||\n lastname === 'test' ||\n mail?.includes('test') ||\n ['606060606', '707070707', '612345678', '712345678', '687654321', '787654321'].includes(phone)\n ) {\n return 0;\n }\n let quotation = 0;\n\n /* cotation du prénom */\n if (firstname) quotation += 5;\n\n /* cotation du nom */\n if (lastname) quotation += 5;\n\n /* cotation du numéro de téléphone */\n if (phone && ['6', '7'].includes(phone.substr(0, 1))) {\n quotation += 15;\n } else {\n quotation += 5;\n }\n\n /* cotation de l'adresse email */\n if (BasicDomain.find((domain) => mail?.includes(domain))) {\n quotation += 5;\n } else if (!ForbidenDomain.find((domain) => mail?.includes(domain))) {\n quotation += 15;\n }\n\n /* cotation du CA annuel */\n if ([0, 150000, 400000, 783000, 783001].includes(annualTurnover)) {\n quotation += 10;\n } else if ([50000, 234000].includes(annualTurnover)) {\n quotation += 5;\n }\n\n /* cotation de la date d'ajout */\n if ([1, 2, 3, 4, 5].includes(new Date().getDay())) {\n const dateTime = new Date();\n const year = dateTime.getFullYear();\n const month = dateTime.getMonth();\n const day = dateTime.getDate();\n const startTime = new Date(`${year}-${month + 1}-${day} 08:45:00`);\n const endTime = new Date(`${year}-${month + 1}-${day} 18:45:00`);\n if (startTime.getTime() <= dateTime.getTime() && endTime.getTime() >= dateTime.getTime()) {\n quotation += 15;\n } else {\n quotation += 5;\n }\n } else {\n quotation += 5;\n }\n\n /* cotation de la source */\n /* Parrainage */\n if (source === 49) {\n quotation += 10;\n\n /* calendly, appel entrant */\n } else if (source === 2) {\n quotation += 8;\n\n /* adWords, Bing, Formulaire */\n } else if (source === 4) {\n quotation += 6;\n\n /* Chat, Whatsapp */\n } else if ([29, 92].includes(source)) {\n quotation += 2;\n }\n\n /* cotation de la qualité (nombre de champs remplis) */\n const fieldNumber = [firstname, lastname, phone, mail, annualTurnover, activitySector].filter(\n (data) => !!data,\n ).length;\n switch (fieldNumber) {\n case 6:\n quotation += 10;\n break;\n case 5:\n quotation += 8;\n break;\n case 4:\n quotation += 6;\n break;\n case 3:\n quotation += 4;\n break;\n case 2:\n quotation += 2;\n break;\n default:\n break;\n }\n\n /* cotation de l'existence du lead (déjà existant ou non) */\n if (alreadyExist) quotation += 8;\n\n /* cotation du secteur d'activité */\n if ([Activity.INFORMATIQUE, Activity.CONSEIL].includes(activitySector)) {\n quotation += 10;\n } else if (\n [\n Activity.TRANSPORT,\n Activity.BTP,\n Activity.RESTAURATION,\n Activity.COMMERCANT,\n Activity.MEDICAL,\n Activity.PROF_LIB,\n ].includes(activitySector)\n ) {\n quotation += 5;\n }\n\n return quotation;\n}\n\n/* besoin en entré de la société concerné avec les différents imports (society), ainsi que la liste des autres sociétés ou l'owner est owner (otherSocieties) */\nexport function getClientQuotation(\n society: ISociety,\n otherSocieties: ISociety[],\n lastNotice: BasePaginate<IRating>,\n unpaidDetails: [],\n reports: IReport[],\n societyProcedings: ISocietyProceding[],\n tabBankAccount: any,\n firstPaiement: IPayment[],\n): ReadClientQuotation {\n let quotationPositive = 0;\n let quotationNegative = 0;\n let quotation = 0;\n const detailQuotation = {\n signature: 0,\n seniority: 0,\n additionalBenefits: 0,\n additionalCompanies: 0,\n unpayed: 0,\n updatedAnnotations: 0,\n bankSynchronization: 0,\n rating: 0,\n labRefused: 0,\n ongoingProceedings: 0,\n report: 0,\n termination: 0,\n created: 0,\n };\n\n // calcul de l'ancienneté de la société\n const anciennete =\n firstPaiement?.length > 0 ? dayjs().diff(dayjs(firstPaiement[0].datePayment, 'YYYY-MM-DD'), 'years') : 0;\n const ponderation = anciennete * 0.1 + 1;\n\n /* Type de comptabilité du client (Tresorerie (+10) / Engagement (+15)) */\n if (society.idComptaType) {\n if (\n [ComptaType.CASH_BASED, ComptaType.CASH_BASED_ASSISTANCE, ComptaType.CASH_BASED_SEIZURE].includes(\n society.idComptaType,\n )\n ) {\n quotationPositive += 10;\n detailQuotation.signature += 10;\n } else if (\n [ComptaType.ACCRUALS, ComptaType.ACCRUALS_ASSISTANCE, ComptaType.ACCRUALS_SEIZURE].includes(society.idComptaType)\n ) {\n quotationPositive += 15;\n detailQuotation.signature += 15;\n }\n }\n\n /* Ancienneté (1 ans < firstPaiement < 2 ans (+10) / 2 ans < firstPaiement (+20 / année)) */\n if (firstPaiement?.length > 0) {\n const yearAsClient =\n Number(new Date().getFullYear()) - Number(new Date(firstPaiement[0].datePayment).getFullYear());\n if (yearAsClient === 1) {\n quotationPositive += 10;\n detailQuotation.seniority += 10;\n } else if (yearAsClient > 1) {\n quotationPositive += 20 * (yearAsClient - 1) + 10;\n detailQuotation.seniority += 20 * (yearAsClient - 1) + 10;\n }\n }\n\n /* Prestations Complémentaires (+5 / prestation) */\n if (society.prestationsSocieties?.length) {\n const prestationsCompl = society.prestationsSocieties.filter((prestation) => prestation.idPrestationComplementary);\n prestationsCompl.forEach(() => {\n quotationPositive += Math.ceil(5 * ponderation);\n detailQuotation.additionalBenefits += Math.ceil(5 * ponderation);\n });\n }\n\n /* Sociétés supplémentaires (+8 / société) */\n if (otherSocieties.length) {\n quotationPositive += Math.ceil(8 * otherSocieties.length * ponderation);\n detailQuotation.additionalCompanies += Math.ceil(8 * otherSocieties.length * ponderation);\n }\n\n /* Impayés (-15 / mois) */\n if (unpaidDetails.length) {\n quotationNegative -= Math.ceil(15 * unpaidDetails.length * ponderation);\n detailQuotation.unpayed -= Math.ceil(15 * unpaidDetails.length * ponderation);\n }\n\n /* annotations à jour */\n if (tabBankAccount.societyAccountingTransactions?.length) {\n // on check s'il y a 80% des lignes annotées (dateLocked)\n let countNotAnnoted = 0;\n let percentageAnnotations = 100;\n tabBankAccount.societyAccountingTransactions.map((na: any) => {\n if (na.dateLocked === null) {\n countNotAnnoted += 1;\n }\n return countNotAnnoted;\n });\n if (countNotAnnoted !== 0)\n percentageAnnotations = (countNotAnnoted / tabBankAccount.societyAccountingTransactions?.length) * 100;\n if (percentageAnnotations >= 80) {\n quotationPositive += Math.ceil(12 * ponderation);\n detailQuotation.updatedAnnotations += Math.ceil(12 * ponderation);\n } else {\n quotationNegative -= Math.ceil(12 * ponderation);\n detailQuotation.updatedAnnotations -= Math.ceil(12 * ponderation);\n }\n }\n\n /* synchronisation bancaire */\n if (tabBankAccount.societyActivatedBankAccounts?.length) {\n // comptes synchro\n const synchro = tabBankAccount.societyActivatedBankAccounts.length - tabBankAccount.desactivatedBankAccount.length;\n quotationPositive += Math.ceil(12 * synchro * ponderation);\n detailQuotation.bankSynchronization += Math.ceil(12 * synchro * ponderation);\n\n // comptes desynchro\n quotationNegative -= Math.ceil(12 * tabBankAccount.desactivatedBankAccount.length * ponderation);\n detailQuotation.bankSynchronization -= Math.ceil(12 * tabBankAccount.desactivatedBankAccount.length * ponderation);\n }\n\n /* avis */\n if (lastNotice && lastNotice.data.length === 1) {\n if (lastNotice.data[0].average === 5) {\n quotationPositive += Math.ceil(10 * ponderation);\n detailQuotation.rating += Math.ceil(10 * ponderation);\n } else {\n quotationNegative -= 10;\n detailQuotation.rating -= 10;\n }\n }\n\n /* LAB refusée */\n if (society?.societyDetail) {\n if (!society.societyDetail?.acceptation) {\n quotationNegative -= 10;\n detailQuotation.labRefused -= 10;\n }\n }\n\n /* Cessation de paiement - redressement judiciaire - procédure en cours / signalements / résiliation */\n if (societyProcedings?.length) {\n quotationNegative -= 5 * societyProcedings.length;\n detailQuotation.ongoingProceedings -= 5 * societyProcedings.length;\n }\n\n if (reports?.length) {\n quotationNegative -= 10;\n detailQuotation.report -= 10;\n }\n\n if (society.isWaitingEnd) {\n quotationNegative -= 50;\n detailQuotation.termination -= 50;\n }\n\n /* Création chez nous */\n if (society.prestationsSocieties?.length) {\n const prestationsCreation = society.prestationsSocieties.filter((prestation) => prestation.idPrestationList === 15); // creation pas d'enum\n prestationsCreation.forEach(() => {\n quotationPositive += 10;\n detailQuotation.created += 10;\n });\n }\n\n if (quotationPositive > 100) quotationPositive = 100;\n if (quotationNegative > 100) quotationNegative = 100;\n\n quotation = quotationPositive + quotationNegative;\n\n if (quotation < 0) quotation = 0;\n\n return {\n cotation: quotation,\n data: detailQuotation,\n idSociety: society.id ?? 0,\n };\n}\n\nexport function compareTwoCotation(cotations: ICotation[]): boolean | null {\n // on recupere les 2 dernieres cotations de la societe\n const higher = false;\n if (cotations[0].cotation === cotations[1].cotation) {\n return null;\n }\n if (cotations[0].cotation > cotations[1].cotation) {\n return true;\n }\n return higher;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"quotation.js","sourceRoot":"","sources":["../../../ts/utils/quotation.ts"],"names":[],"mappings":"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","sourcesContent":["import * as dayjs from 'dayjs';\nimport { ForbidenDomain, BasicDomain } from '../types/Enum/MailDomainType';\nimport { Activity } from '../types/Enum/Activity';\nimport { ComptaType } from '../types/Enum/ComptaType';\nimport { ISociety } from '../types/Interface/models/ISociety';\nimport { ICotation } from '../types/Interface/models/ICotation';\nimport { BasePaginate, IPayment, IRating, IReport, ISocietyProceding, ReadClientQuotation } from '../types';\n\ntype getLeadQuotationParams = {\n firstname: string;\n lastname: string;\n phone: string;\n mail: string;\n annualTurnover: number;\n source: number;\n alreadyExist: boolean;\n activitySector: number;\n};\n\nexport function getLeadQuotation(params: getLeadQuotationParams): number {\n const { firstname, lastname, phone, mail, annualTurnover, source, alreadyExist, activitySector } = params;\n if (\n firstname === 'test' ||\n lastname === 'test' ||\n mail?.includes('test') ||\n ['606060606', '707070707', '612345678', '712345678', '687654321', '787654321'].includes(phone)\n ) {\n return 0;\n }\n let quotation = 0;\n\n /* cotation du prénom */\n if (firstname) quotation += 5;\n\n /* cotation du nom */\n if (lastname) quotation += 5;\n\n /* cotation du numéro de téléphone */\n if (phone && ['6', '7'].includes(phone.substr(0, 1))) {\n quotation += 15;\n } else {\n quotation += 5;\n }\n\n /* cotation de l'adresse email */\n if (BasicDomain.find((domain) => mail?.includes(domain))) {\n quotation += 5;\n } else if (!ForbidenDomain.find((domain) => mail?.includes(domain))) {\n quotation += 15;\n }\n\n /* cotation du CA annuel */\n if ([0, 150000, 400000, 783000, 783001].includes(annualTurnover)) {\n quotation += 10;\n } else if ([50000, 234000].includes(annualTurnover)) {\n quotation += 5;\n }\n\n /* cotation de la date d'ajout */\n if ([1, 2, 3, 4, 5].includes(new Date().getDay())) {\n const dateTime = new Date();\n const year = dateTime.getFullYear();\n const month = dateTime.getMonth();\n const day = dateTime.getDate();\n const startTime = new Date(`${year}-${month + 1}-${day} 08:45:00`);\n const endTime = new Date(`${year}-${month + 1}-${day} 18:45:00`);\n if (startTime.getTime() <= dateTime.getTime() && endTime.getTime() >= dateTime.getTime()) {\n quotation += 15;\n } else {\n quotation += 5;\n }\n } else {\n quotation += 5;\n }\n\n /* cotation de la source */\n /* Parrainage */\n if (source === 49) {\n quotation += 10;\n\n /* calendly, appel entrant */\n } else if (source === 2) {\n quotation += 8;\n\n /* adWords, Bing, Formulaire */\n } else if (source === 4) {\n quotation += 6;\n\n /* Chat, Whatsapp */\n } else if ([29, 92].includes(source)) {\n quotation += 2;\n }\n\n /* cotation de la qualité (nombre de champs remplis) */\n const fieldNumber = [firstname, lastname, phone, mail, annualTurnover, activitySector].filter(\n (data) => !!data,\n ).length;\n switch (fieldNumber) {\n case 6:\n quotation += 10;\n break;\n case 5:\n quotation += 8;\n break;\n case 4:\n quotation += 6;\n break;\n case 3:\n quotation += 4;\n break;\n case 2:\n quotation += 2;\n break;\n default:\n break;\n }\n\n /* cotation de l'existence du lead (déjà existant ou non) */\n if (alreadyExist) quotation += 8;\n\n /* cotation du secteur d'activité */\n if ([Activity.INFORMATIQUE, Activity.CONSEIL].includes(activitySector)) {\n quotation += 10;\n } else if (\n [\n Activity.TRANSPORT,\n Activity.BTP,\n Activity.RESTAURATION,\n Activity.COMMERCANT,\n Activity.MEDICAL,\n Activity.PROF_LIB,\n ].includes(activitySector)\n ) {\n quotation += 5;\n }\n\n return quotation;\n}\n\n/* besoin en entré de la société concerné avec les différents imports (society), ainsi que la liste des autres sociétés ou l'owner est owner (otherSocieties) */\nexport function getClientQuotation(\n society: ISociety,\n otherSocieties: ISociety[],\n lastNotice: BasePaginate<IRating>,\n unpaidDetails: [],\n reports: IReport[],\n societyProcedings: ISocietyProceding[],\n tabBankAccount: any,\n firstPaiement: IPayment[],\n): ReadClientQuotation {\n let quotationPositive = 0;\n let quotationNegative = 0;\n let quotation = 0;\n const detailQuotation = {\n signature: 0,\n seniority: 0,\n additionalBenefits: 0,\n additionalCompanies: 0,\n unpayed: 0,\n updatedAnnotations: 0,\n bankSynchronization: 0,\n rating: 0,\n labRefused: 0,\n ongoingProceedings: 0,\n report: 0,\n termination: 0,\n created: 0,\n };\n\n // calcul de l'ancienneté de la société\n const anciennete =\n firstPaiement?.length > 0 ? dayjs().diff(dayjs(firstPaiement[0].datePayment, 'YYYY-MM-DD'), 'years') : 0;\n const ponderation = anciennete * 0.1 + 1;\n\n /* Type de comptabilité du client (Tresorerie (+10) / Engagement (+15)) */\n if (society.idComptaType) {\n if (\n [ComptaType.CASH_BASED, ComptaType.CASH_BASED_ASSISTANCE, ComptaType.CASH_BASED_SEIZURE].includes(\n society.idComptaType,\n )\n ) {\n quotationPositive += 10;\n detailQuotation.signature += 10;\n } else if (\n [ComptaType.ACCRUALS, ComptaType.ACCRUALS_ASSISTANCE, ComptaType.ACCRUALS_SEIZURE].includes(society.idComptaType)\n ) {\n quotationPositive += 15;\n detailQuotation.signature += 15;\n }\n }\n\n /* Ancienneté (1 ans < firstPaiement < 2 ans (+10) / 2 ans < firstPaiement (+20 / année)) */\n if (firstPaiement?.length > 0) {\n const yearAsClient =\n Number(new Date().getFullYear()) - Number(new Date(firstPaiement[0].datePayment).getFullYear());\n if (yearAsClient === 1) {\n quotationPositive += 10;\n detailQuotation.seniority += 10;\n } else if (yearAsClient > 1) {\n quotationPositive += 20 * (yearAsClient - 1) + 10;\n detailQuotation.seniority += 20 * (yearAsClient - 1) + 10;\n }\n }\n\n /* Prestations Complémentaires (+5 / prestation) */\n if (society.prestationsSocieties?.length) {\n const prestationsCompl = society.prestationsSocieties.filter((prestation) => prestation.idPrestationComplementary);\n prestationsCompl.forEach(() => {\n quotationPositive += Math.ceil(5 * ponderation);\n detailQuotation.additionalBenefits += Math.ceil(5 * ponderation);\n });\n }\n\n /* Sociétés supplémentaires (+8 / société) */\n if (otherSocieties.length) {\n quotationPositive += Math.ceil(8 * otherSocieties.length * ponderation);\n detailQuotation.additionalCompanies += Math.ceil(8 * otherSocieties.length * ponderation);\n }\n\n /* Impayés (-15 / mois) */\n if (unpaidDetails.length) {\n quotationNegative -= Math.ceil(15 * unpaidDetails.length * ponderation);\n detailQuotation.unpayed -= Math.ceil(15 * unpaidDetails.length * ponderation);\n }\n\n /* annotations à jour */\n if (tabBankAccount.societyAccountingTransactions?.length) {\n // on check s'il y a 80% des lignes annotées (dateLocked)\n let countNotAnnoted = 0;\n let percentageAnnotations = 100;\n tabBankAccount.societyAccountingTransactions.map((na: any) => {\n if (na.dateLocked === null) {\n countNotAnnoted += 1;\n }\n return countNotAnnoted;\n });\n if (countNotAnnoted !== 0)\n percentageAnnotations = (countNotAnnoted / tabBankAccount.societyAccountingTransactions?.length) * 100;\n if (percentageAnnotations >= 80) {\n quotationPositive += Math.ceil(12 * ponderation);\n detailQuotation.updatedAnnotations += Math.ceil(12 * ponderation);\n } else {\n quotationNegative -= Math.ceil(12 * ponderation);\n detailQuotation.updatedAnnotations -= Math.ceil(12 * ponderation);\n }\n }\n\n /* synchronisation bancaire */\n if (tabBankAccount.societyActivatedBankAccounts?.length) {\n // comptes synchro\n const synchro = tabBankAccount.societyActivatedBankAccounts.length - tabBankAccount.desactivatedBankAccount.length;\n quotationPositive += Math.ceil(12 * synchro * ponderation);\n detailQuotation.bankSynchronization += Math.ceil(12 * synchro * ponderation);\n\n // comptes desynchro\n quotationNegative -= Math.ceil(12 * tabBankAccount.desactivatedBankAccount.length * ponderation);\n detailQuotation.bankSynchronization -= Math.ceil(12 * tabBankAccount.desactivatedBankAccount.length * ponderation);\n }\n\n /* avis */\n if (lastNotice && lastNotice.data.length === 1) {\n if (lastNotice.data[0].average === 5) {\n quotationPositive += Math.ceil(10 * ponderation);\n detailQuotation.rating += Math.ceil(10 * ponderation);\n } else {\n quotationNegative -= 10;\n detailQuotation.rating -= 10;\n }\n }\n\n /* LAB refusée */\n if (society?.societyDetail) {\n if (!society.societyDetail?.acceptation) {\n quotationNegative -= 10;\n detailQuotation.labRefused -= 10;\n }\n }\n\n /* Cessation de paiement - redressement judiciaire - procédure en cours / signalements / résiliation */\n if (societyProcedings?.length) {\n quotationNegative -= 5 * societyProcedings.length;\n detailQuotation.ongoingProceedings -= 5 * societyProcedings.length;\n }\n\n if (reports?.length) {\n quotationNegative -= 10;\n detailQuotation.report -= 10;\n }\n\n if (society.isWaitingEnd) {\n quotationNegative -= 50;\n detailQuotation.termination -= 50;\n }\n\n /* Création chez nous */\n if (society.prestationsSocieties?.length) {\n const prestationsCreation = society.prestationsSocieties.filter((prestation) => prestation.idPrestationList === 15); // creation pas d'enum\n prestationsCreation.forEach(() => {\n quotationPositive += 10;\n detailQuotation.created += 10;\n });\n }\n\n if (quotationPositive > 100) quotationPositive = 100;\n if (quotationNegative > 100) quotationNegative = 100;\n\n quotation = quotationPositive + quotationNegative;\n\n if (quotation < 0) quotation = 0;\n\n return {\n cotation: quotation,\n data: detailQuotation,\n idSociety: society.id ?? 0,\n };\n}\n\nexport function compareTwoCotation(cotations: ICotation[]): boolean | null {\n // on recupere les 2 dernieres cotations de la societe\n const higher = false;\n if (cotations[0].cotation === cotations[1].cotation) {\n return null;\n }\n if (cotations[0].cotation > cotations[1].cotation) {\n return true;\n }\n return higher;\n}\n"]}
|
|
@@ -10,7 +10,7 @@ const SocietyApproval_1 = require("../types/Enum/SocietyApproval");
|
|
|
10
10
|
const Quality_1 = require("../types/Enum/Quality");
|
|
11
11
|
const brands_1 = require("./brands");
|
|
12
12
|
const amount_1 = require("./amount");
|
|
13
|
-
const
|
|
13
|
+
const dayjs = require("dayjs");
|
|
14
14
|
const CityOfGreffe_1 = require("../types/Enum/CityOfGreffe");
|
|
15
15
|
const siretValidation_1 = require("./siretValidation");
|
|
16
16
|
/**
|
|
@@ -72,8 +72,8 @@ function getApprovalDocumentInfos(idLegalForm, idDocumentType) {
|
|
|
72
72
|
*/
|
|
73
73
|
function buildApprovalTemplateData(existingApproval, style) {
|
|
74
74
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10;
|
|
75
|
-
const yearInText = (0, amount_1.convertNumberToLetter)(+(
|
|
76
|
-
const dayAndMonthInText = `${(0, amount_1.convertNumberToLetter)(+(
|
|
75
|
+
const yearInText = (0, amount_1.convertNumberToLetter)(+dayjs(((_a = existingApproval === null || existingApproval === void 0 ? void 0 : existingApproval.generatingDatas) === null || _a === void 0 ? void 0 : _a.approvalDate) || null).format('YYYY')).toLowerCase();
|
|
76
|
+
const dayAndMonthInText = `${(0, amount_1.convertNumberToLetter)(+dayjs(((_b = existingApproval === null || existingApproval === void 0 ? void 0 : existingApproval.generatingDatas) === null || _b === void 0 ? void 0 : _b.approvalDate) || null).format('D'))} ${dayjs(((_c = existingApproval === null || existingApproval === void 0 ? void 0 : existingApproval.generatingDatas) === null || _c === void 0 ? void 0 : _c.approvalDate) || null)
|
|
77
77
|
.locale('fr')
|
|
78
78
|
.format('MMMM')
|
|
79
79
|
.toLowerCase()}`;
|
|
@@ -89,7 +89,7 @@ function buildApprovalTemplateData(existingApproval, style) {
|
|
|
89
89
|
socialSecurityContributions: 0.186, //= csg + solidarity + crds
|
|
90
90
|
}, style,
|
|
91
91
|
yearInText,
|
|
92
|
-
dayAndMonthInText, date: (
|
|
92
|
+
dayAndMonthInText, date: dayjs().locale('fr').format('DD MMMM YYYY'), companyInformation: {
|
|
93
93
|
rcs: (_d = brand === null || brand === void 0 ? void 0 : brand.companyInformation) === null || _d === void 0 ? void 0 : _d.rcs,
|
|
94
94
|
nomRaisonSociale: (_e = brand === null || brand === void 0 ? void 0 : brand.companyInformation) === null || _e === void 0 ? void 0 : _e.nomRaisonSociale,
|
|
95
95
|
city: (_f = brand === null || brand === void 0 ? void 0 : brand.companyInformation) === null || _f === void 0 ? void 0 : _f.city,
|
|
@@ -102,19 +102,19 @@ function buildApprovalTemplateData(existingApproval, style) {
|
|
|
102
102
|
quality: (_y = Quality_1.QualityList.find((ql) => { var _a, _b, _c, _d, _e, _f; return ql.id === ((_f = (_e = (_d = (_c = (_b = (_a = existingApproval === null || existingApproval === void 0 ? void 0 : existingApproval.exercice) === null || _a === void 0 ? void 0 : _a.society) === null || _b === void 0 ? void 0 : _b.users) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.businessPartners) === null || _e === void 0 ? void 0 : _e[0]) === null || _f === void 0 ? void 0 : _f.idQuality); })) === null || _y === void 0 ? void 0 : _y.label,
|
|
103
103
|
} }, existingApproval), { generatingDatas: Object.assign(Object.assign(Object.assign({}, existingApproval === null || existingApproval === void 0 ? void 0 : existingApproval.generatingDatas), (((_z = existingApproval === null || existingApproval === void 0 ? void 0 : existingApproval.generatingDatas) === null || _z === void 0 ? void 0 : _z.approvalDate)
|
|
104
104
|
? {
|
|
105
|
-
approvalDate: (
|
|
105
|
+
approvalDate: dayjs((_0 = existingApproval === null || existingApproval === void 0 ? void 0 : existingApproval.generatingDatas) === null || _0 === void 0 ? void 0 : _0.approvalDate)
|
|
106
106
|
.locale('fr')
|
|
107
107
|
.format('DD MMMM YYYY')
|
|
108
108
|
.toUpperCase(),
|
|
109
109
|
}
|
|
110
110
|
: {})), (((_1 = existingApproval === null || existingApproval === void 0 ? void 0 : existingApproval.generatingDatas) === null || _1 === void 0 ? void 0 : _1.approvalDividendsPaymentDate)
|
|
111
111
|
? {
|
|
112
|
-
approvalDividendsPaymentDate: (
|
|
112
|
+
approvalDividendsPaymentDate: dayjs((_2 = existingApproval === null || existingApproval === void 0 ? void 0 : existingApproval.generatingDatas) === null || _2 === void 0 ? void 0 : _2.approvalDividendsPaymentDate)
|
|
113
113
|
.locale('fr')
|
|
114
114
|
.format('DD MMMM YYYY'),
|
|
115
115
|
}
|
|
116
116
|
: {})), exercice: Object.assign(Object.assign({}, existingApproval === null || existingApproval === void 0 ? void 0 : existingApproval.exercice), { society: Object.assign(Object.assign({}, (_3 = existingApproval === null || existingApproval === void 0 ? void 0 : existingApproval.exercice) === null || _3 === void 0 ? void 0 : _3.society), { cityOfGreffe: getCityOfGreffeName((_5 = (_4 = existingApproval === null || existingApproval === void 0 ? void 0 : existingApproval.exercice) === null || _4 === void 0 ? void 0 : _4.society) === null || _5 === void 0 ? void 0 : _5.idCityOfGreffe).toUpperCase(), siren: ((_7 = (_6 = existingApproval === null || existingApproval === void 0 ? void 0 : existingApproval.exercice) === null || _6 === void 0 ? void 0 : _6.society) === null || _7 === void 0 ? void 0 : _7.siret)
|
|
117
117
|
? ((_9 = (_8 = (0, siretValidation_1.siretToSiren)(existingApproval.exercice.society.siret)) === null || _8 === void 0 ? void 0 : _8.replace(/(\d{3})(\d{3})(\d{3})/, '$1 $2 $3')) !== null && _9 !== void 0 ? _9 : null)
|
|
118
|
-
: null }), endDate: (
|
|
118
|
+
: null }), endDate: dayjs((_10 = existingApproval === null || existingApproval === void 0 ? void 0 : existingApproval.exercice) === null || _10 === void 0 ? void 0 : _10.endDate).locale('fr').format('DD MMMM YYYY').toLowerCase() }) });
|
|
119
119
|
}
|
|
120
120
|
//# sourceMappingURL=societyApproval.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"societyApproval.js","sourceRoot":"","sources":["../../../ts/utils/societyApproval.ts"],"names":[],"mappings":"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","sourcesContent":["import { LegalForm, LegalFormTypeEnum } from '../types/Enum/LegalForm';\nimport {\n SocietyApprovalDocumentType,\n SocietyApprovalDocumentConfig,\n SocietyApprovalDocumentsByLegalForm,\n SocietyApprovalDocumentTemplate,\n} from '../types/Enum/SocietyApproval';\nimport { ISocietyApproval } from '../types/Interface/models/ISocietyApproval';\nimport { QualityList } from '../types/Enum/Quality';\nimport { getBrand } from './brands';\nimport { convertNumberToLetter } from './amount';\nimport dayjs from 'dayjs';\nimport { CityOfGreffeDetail } from '../types/Enum/CityOfGreffe';\nimport { siretToSiren } from './siretValidation';\n\n/**\n * Récupère le nom de la forme juridique\n * @param idLegalForm - L'identifiant de la forme juridique\n * @param fallback - Valeur par défaut si non trouvée\n * @returns Le nom de la forme juridique\n */\nexport function getLegalFormName(idLegalForm: LegalFormTypeEnum, fallback: string = ''): string {\n return Object.values(LegalForm).find((lf) => lf.id === idLegalForm)?.name ?? fallback;\n}\n\n/**\n * Récupère la configuration des documents d'approbation pour une forme juridique donnée\n * @param idLegalForm - L'identifiant de la forme juridique\n * @returns La configuration des documents ou undefined si non trouvée\n */\nexport function getApprovalDocumentsByLegalForm(\n idLegalForm: LegalFormTypeEnum,\n): SocietyApprovalDocumentConfig | undefined {\n return SocietyApprovalDocumentsByLegalForm.find((config) => config.idLegalForm === idLegalForm);\n}\n\n/**\n * Récupère le nom du template pour un document spécifique et une forme juridique\n * @param idLegalForm - L'identifiant de la forme juridique\n * @param idDocumentType - Le type de document d'approbation\n * @returns Le nom du template ou undefined si non trouvé\n */\n//@deprecated use getApprovalDocumentInfos instead\nexport function getApprovalDocumentTemplateName(\n idLegalForm: LegalFormTypeEnum,\n idDocumentType: SocietyApprovalDocumentType,\n): string | undefined {\n const config = getApprovalDocumentsByLegalForm(idLegalForm);\n const document = config?.documents.find((doc) => doc.idDocumentType === idDocumentType);\n return document?.templateName;\n}\n\n/**\n * Récupère le texte de la ville du greffe\n * @param idCityOfGreffe - L'identifiant de la ville du greffe\n * @returns Le texte de la ville ou une chaîne vide\n */\nfunction getCityOfGreffeName(idCityOfGreffe: number | null | undefined): string {\n if (!idCityOfGreffe) return '';\n return CityOfGreffeDetail.find((c) => c.id === idCityOfGreffe)?.text ?? '';\n}\n\n/**\n * Récupère le nom du template pour un document spécifique et une forme juridique\n * @param idLegalForm - L'identifiant de la forme juridique\n * @param idDocumentType - Le type de document d'approbation\n * @returns Le nom du template ou undefined si non trouvé\n */\nexport function getApprovalDocumentInfos(\n idLegalForm: LegalFormTypeEnum,\n idDocumentType: SocietyApprovalDocumentType,\n): SocietyApprovalDocumentTemplate | undefined {\n const config = getApprovalDocumentsByLegalForm(idLegalForm);\n return config?.documents.find((doc) => doc.idDocumentType === idDocumentType);\n}\n\n/**\n * Construit les données formatées pour le template d'approbation\n * @param existingApproval - Les données d'approbation de la société\n * @param style - Le style HTML pour le document\n * @returns L'objet de données formaté pour le template\n */\nexport function buildApprovalTemplateData(existingApproval: ISocietyApproval, style: string): Record<string, any> {\n const yearInText = convertNumberToLetter(\n +dayjs(existingApproval?.generatingDatas?.approvalDate || null).format('YYYY'),\n ).toLowerCase();\n const dayAndMonthInText = `${convertNumberToLetter(+dayjs(existingApproval?.generatingDatas?.approvalDate || null).format('D'))} ${dayjs(\n existingApproval?.generatingDatas?.approvalDate || null,\n )\n .locale('fr')\n .format('MMMM')\n .toLowerCase()}`;\n const brand = getBrand();\n return {\n // Variables globales\n rates: {\n flatTax: 0.314,\n flatLevy: 0.128, //prelevement forfaitaire\n csg: 0.106,\n solidarity: 0.075,\n crds: 0.005,\n socialSecurityContributions: 0.186, //= csg + solidarity + crds\n },\n style,\n yearInText,\n dayAndMonthInText,\n date: dayjs().locale('fr').format('DD MMMM YYYY'),\n companyInformation: {\n rcs: brand?.companyInformation?.rcs,\n nomRaisonSociale: brand?.companyInformation?.nomRaisonSociale,\n city: brand?.companyInformation?.city,\n postalAddress: brand?.companyInformation?.postalAddress,\n montantCapital: brand?.companyInformation?.montantCapital,\n statut: brand?.companyInformation?.statut,\n ECOrderCity: brand?.companyInformation?.ECOrderCity,\n },\n owner: {\n identity: `${existingApproval?.exercice?.society?.users?.[0]?.idCivility === 1 ? 'Monsieur' : 'Madame'} ${existingApproval?.exercice?.society?.users?.[0]?.firstname} ${existingApproval?.exercice?.society?.users?.[0]?.lastname} `,\n quality: QualityList.find(\n (ql) => ql.id === existingApproval?.exercice?.society?.users?.[0]?.businessPartners?.[0]?.idQuality,\n )?.label,\n },\n // Variables stockées en base\n ...existingApproval,\n generatingDatas: {\n ...existingApproval?.generatingDatas,\n ...(existingApproval?.generatingDatas?.approvalDate\n ? {\n approvalDate: dayjs(existingApproval?.generatingDatas?.approvalDate)\n .locale('fr')\n .format('DD MMMM YYYY')\n .toUpperCase(),\n }\n : {}),\n ...(existingApproval?.generatingDatas?.approvalDividendsPaymentDate\n ? {\n approvalDividendsPaymentDate: dayjs(existingApproval?.generatingDatas?.approvalDividendsPaymentDate)\n .locale('fr')\n .format('DD MMMM YYYY'),\n }\n : {}),\n },\n exercice: {\n ...existingApproval?.exercice,\n society: {\n ...existingApproval?.exercice?.society,\n cityOfGreffe: getCityOfGreffeName(existingApproval?.exercice?.society?.idCityOfGreffe).toUpperCase(),\n siren: existingApproval?.exercice?.society?.siret\n ? (siretToSiren(existingApproval.exercice.society.siret)?.replace(/(\\d{3})(\\d{3})(\\d{3})/, '$1 $2 $3') ??\n null)\n : null,\n },\n endDate: dayjs(existingApproval?.exercice?.endDate).locale('fr').format('DD MMMM YYYY').toLowerCase(),\n },\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"societyApproval.js","sourceRoot":"","sources":["../../../ts/utils/societyApproval.ts"],"names":[],"mappings":"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","sourcesContent":["import { LegalForm, LegalFormTypeEnum } from '../types/Enum/LegalForm';\nimport {\n SocietyApprovalDocumentType,\n SocietyApprovalDocumentConfig,\n SocietyApprovalDocumentsByLegalForm,\n SocietyApprovalDocumentTemplate,\n} from '../types/Enum/SocietyApproval';\nimport { ISocietyApproval } from '../types/Interface/models/ISocietyApproval';\nimport { QualityList } from '../types/Enum/Quality';\nimport { getBrand } from './brands';\nimport { convertNumberToLetter } from './amount';\nimport * as dayjs from 'dayjs';\nimport { CityOfGreffeDetail } from '../types/Enum/CityOfGreffe';\nimport { siretToSiren } from './siretValidation';\n\n/**\n * Récupère le nom de la forme juridique\n * @param idLegalForm - L'identifiant de la forme juridique\n * @param fallback - Valeur par défaut si non trouvée\n * @returns Le nom de la forme juridique\n */\nexport function getLegalFormName(idLegalForm: LegalFormTypeEnum, fallback: string = ''): string {\n return Object.values(LegalForm).find((lf) => lf.id === idLegalForm)?.name ?? fallback;\n}\n\n/**\n * Récupère la configuration des documents d'approbation pour une forme juridique donnée\n * @param idLegalForm - L'identifiant de la forme juridique\n * @returns La configuration des documents ou undefined si non trouvée\n */\nexport function getApprovalDocumentsByLegalForm(\n idLegalForm: LegalFormTypeEnum,\n): SocietyApprovalDocumentConfig | undefined {\n return SocietyApprovalDocumentsByLegalForm.find((config) => config.idLegalForm === idLegalForm);\n}\n\n/**\n * Récupère le nom du template pour un document spécifique et une forme juridique\n * @param idLegalForm - L'identifiant de la forme juridique\n * @param idDocumentType - Le type de document d'approbation\n * @returns Le nom du template ou undefined si non trouvé\n */\n//@deprecated use getApprovalDocumentInfos instead\nexport function getApprovalDocumentTemplateName(\n idLegalForm: LegalFormTypeEnum,\n idDocumentType: SocietyApprovalDocumentType,\n): string | undefined {\n const config = getApprovalDocumentsByLegalForm(idLegalForm);\n const document = config?.documents.find((doc) => doc.idDocumentType === idDocumentType);\n return document?.templateName;\n}\n\n/**\n * Récupère le texte de la ville du greffe\n * @param idCityOfGreffe - L'identifiant de la ville du greffe\n * @returns Le texte de la ville ou une chaîne vide\n */\nfunction getCityOfGreffeName(idCityOfGreffe: number | null | undefined): string {\n if (!idCityOfGreffe) return '';\n return CityOfGreffeDetail.find((c) => c.id === idCityOfGreffe)?.text ?? '';\n}\n\n/**\n * Récupère le nom du template pour un document spécifique et une forme juridique\n * @param idLegalForm - L'identifiant de la forme juridique\n * @param idDocumentType - Le type de document d'approbation\n * @returns Le nom du template ou undefined si non trouvé\n */\nexport function getApprovalDocumentInfos(\n idLegalForm: LegalFormTypeEnum,\n idDocumentType: SocietyApprovalDocumentType,\n): SocietyApprovalDocumentTemplate | undefined {\n const config = getApprovalDocumentsByLegalForm(idLegalForm);\n return config?.documents.find((doc) => doc.idDocumentType === idDocumentType);\n}\n\n/**\n * Construit les données formatées pour le template d'approbation\n * @param existingApproval - Les données d'approbation de la société\n * @param style - Le style HTML pour le document\n * @returns L'objet de données formaté pour le template\n */\nexport function buildApprovalTemplateData(existingApproval: ISocietyApproval, style: string): Record<string, any> {\n const yearInText = convertNumberToLetter(\n +dayjs(existingApproval?.generatingDatas?.approvalDate || null).format('YYYY'),\n ).toLowerCase();\n const dayAndMonthInText = `${convertNumberToLetter(+dayjs(existingApproval?.generatingDatas?.approvalDate || null).format('D'))} ${dayjs(\n existingApproval?.generatingDatas?.approvalDate || null,\n )\n .locale('fr')\n .format('MMMM')\n .toLowerCase()}`;\n const brand = getBrand();\n return {\n // Variables globales\n rates: {\n flatTax: 0.314,\n flatLevy: 0.128, //prelevement forfaitaire\n csg: 0.106,\n solidarity: 0.075,\n crds: 0.005,\n socialSecurityContributions: 0.186, //= csg + solidarity + crds\n },\n style,\n yearInText,\n dayAndMonthInText,\n date: dayjs().locale('fr').format('DD MMMM YYYY'),\n companyInformation: {\n rcs: brand?.companyInformation?.rcs,\n nomRaisonSociale: brand?.companyInformation?.nomRaisonSociale,\n city: brand?.companyInformation?.city,\n postalAddress: brand?.companyInformation?.postalAddress,\n montantCapital: brand?.companyInformation?.montantCapital,\n statut: brand?.companyInformation?.statut,\n ECOrderCity: brand?.companyInformation?.ECOrderCity,\n },\n owner: {\n identity: `${existingApproval?.exercice?.society?.users?.[0]?.idCivility === 1 ? 'Monsieur' : 'Madame'} ${existingApproval?.exercice?.society?.users?.[0]?.firstname} ${existingApproval?.exercice?.society?.users?.[0]?.lastname} `,\n quality: QualityList.find(\n (ql) => ql.id === existingApproval?.exercice?.society?.users?.[0]?.businessPartners?.[0]?.idQuality,\n )?.label,\n },\n // Variables stockées en base\n ...existingApproval,\n generatingDatas: {\n ...existingApproval?.generatingDatas,\n ...(existingApproval?.generatingDatas?.approvalDate\n ? {\n approvalDate: dayjs(existingApproval?.generatingDatas?.approvalDate)\n .locale('fr')\n .format('DD MMMM YYYY')\n .toUpperCase(),\n }\n : {}),\n ...(existingApproval?.generatingDatas?.approvalDividendsPaymentDate\n ? {\n approvalDividendsPaymentDate: dayjs(existingApproval?.generatingDatas?.approvalDividendsPaymentDate)\n .locale('fr')\n .format('DD MMMM YYYY'),\n }\n : {}),\n },\n exercice: {\n ...existingApproval?.exercice,\n society: {\n ...existingApproval?.exercice?.society,\n cityOfGreffe: getCityOfGreffeName(existingApproval?.exercice?.society?.idCityOfGreffe).toUpperCase(),\n siren: existingApproval?.exercice?.society?.siret\n ? (siretToSiren(existingApproval.exercice.society.siret)?.replace(/(\\d{3})(\\d{3})(\\d{3})/, '$1 $2 $3') ??\n null)\n : null,\n },\n endDate: dayjs(existingApproval?.exercice?.endDate).locale('fr').format('DD MMMM YYYY').toLowerCase(),\n },\n };\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const
|
|
3
|
+
const dayjs = require("dayjs");
|
|
4
4
|
const types_1 = require("../../types");
|
|
5
5
|
const mockdate_1 = require("mockdate");
|
|
6
6
|
const payment_1 = require("../payment");
|
|
@@ -11,7 +11,7 @@ describe('Payment', () => {
|
|
|
11
11
|
const yearlyAmountNonExpress = 1800;
|
|
12
12
|
const nextYearlyAmountNonExpress = 1800;
|
|
13
13
|
const appCost = 14.9;
|
|
14
|
-
const firstExerciceNonExpresssEndDate = (
|
|
14
|
+
const firstExerciceNonExpresssEndDate = dayjs().add(11, 'month').endOf('month').toDate();
|
|
15
15
|
const prestationList = {
|
|
16
16
|
id: 34,
|
|
17
17
|
name: 'Compta Pro',
|
|
@@ -33,14 +33,14 @@ describe('Payment', () => {
|
|
|
33
33
|
const idVat = types_1.Vat.TX_10.id;
|
|
34
34
|
const listPartialExercicePrestationExpress = [
|
|
35
35
|
{
|
|
36
|
-
startDate: (
|
|
37
|
-
endDate: (
|
|
36
|
+
startDate: dayjs().subtract(2, 'year').startOf('month').toDate(),
|
|
37
|
+
endDate: dayjs().subtract(13, 'month').endOf('month').toDate(),
|
|
38
38
|
countExpressMonthlyPayment: 2,
|
|
39
39
|
totalAmount: 1200,
|
|
40
40
|
},
|
|
41
41
|
{
|
|
42
|
-
startDate: (
|
|
43
|
-
endDate: (
|
|
42
|
+
startDate: dayjs().subtract(1, 'year').startOf('month').toDate(),
|
|
43
|
+
endDate: dayjs().subtract(1, 'month').endOf('month').toDate(),
|
|
44
44
|
countExpressMonthlyPayment: 2,
|
|
45
45
|
totalAmount: 1800,
|
|
46
46
|
},
|
|
@@ -116,9 +116,9 @@ describe('Payment', () => {
|
|
|
116
116
|
yearlyAmountNonExpress,
|
|
117
117
|
nextYearlyAmountNonExpress,
|
|
118
118
|
});
|
|
119
|
-
const firstExpressDatePayment = payments.filter((p) => (
|
|
120
|
-
const firstNonExpressDatePayment = payments.filter((p) => (
|
|
121
|
-
expect((
|
|
119
|
+
const firstExpressDatePayment = payments.filter((p) => dayjs(p.closingDate).diff(firstExerciceNonExpresssEndDate) < 0)[0].datePayment;
|
|
120
|
+
const firstNonExpressDatePayment = payments.filter((p) => dayjs(p.closingDate).diff(firstExerciceNonExpresssEndDate) === 0)[0].datePayment;
|
|
121
|
+
expect(dayjs(firstNonExpressDatePayment).diff(firstExpressDatePayment, 'month')).toStrictEqual(0);
|
|
122
122
|
});
|
|
123
123
|
test('if more than one express, monthly payments of actual exo should be in a row of express monthly payments and smoothed, smoothed in number of remaining months after express monthly payments (mini 3 months) (if in 3 last month of exercice)', () => {
|
|
124
124
|
var _a, _b, _c, _d;
|
|
@@ -136,17 +136,17 @@ describe('Payment', () => {
|
|
|
136
136
|
nextYearlyAmountNonExpress,
|
|
137
137
|
});
|
|
138
138
|
const lastExpressDatePayment = (_b = (_a = payments
|
|
139
|
-
.filter((p) => (
|
|
139
|
+
.filter((p) => dayjs(p.closingDate).diff(firstExerciceNonExpresssEndDate) < 0)
|
|
140
140
|
.splice(-1)) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.datePayment;
|
|
141
|
-
const firstNonExpressDatePayment = (_d = (_c = payments.filter((p) => (
|
|
142
|
-
expect((
|
|
141
|
+
const firstNonExpressDatePayment = (_d = (_c = payments.filter((p) => dayjs(p.closingDate).diff(firstExerciceNonExpresssEndDate) === 0)) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.datePayment;
|
|
142
|
+
expect(dayjs(firstNonExpressDatePayment).diff(lastExpressDatePayment, 'month')).toStrictEqual(1);
|
|
143
143
|
});
|
|
144
144
|
// non express
|
|
145
145
|
test('should return a number of payments equal to nb of remaining months in exercice (if not in 3 last months)', () => {
|
|
146
|
-
const mockedDate = (
|
|
146
|
+
const mockedDate = dayjs('2024-05-15').toDate();
|
|
147
147
|
mockdate_1.default.set(mockedDate);
|
|
148
148
|
const nbMonthDelay = 6;
|
|
149
|
-
const newFirstExerciceNonExpresssEndDate = (
|
|
149
|
+
const newFirstExerciceNonExpresssEndDate = dayjs().add(nbMonthDelay, 'month').endOf('month').toDate();
|
|
150
150
|
const payments = (0, payment_1.calculatePaymentsAuto)({
|
|
151
151
|
idTypeBrand: 1,
|
|
152
152
|
firstExerciceNonExpresssEndDate: newFirstExerciceNonExpresssEndDate,
|
|
@@ -166,13 +166,13 @@ describe('Payment', () => {
|
|
|
166
166
|
nextYearlyAmountNonExpress,
|
|
167
167
|
});
|
|
168
168
|
// const listNonExpressPayments = payments.filter(p => p.closingDate === newFirstExerciceNonExpresssEndDate);
|
|
169
|
-
const listNonExpressPayments = payments.filter((p) => (
|
|
169
|
+
const listNonExpressPayments = payments.filter((p) => dayjs(p.closingDate).diff(newFirstExerciceNonExpresssEndDate) === 0);
|
|
170
170
|
expect(listNonExpressPayments.length).toStrictEqual(1 + nbMonthDelay); //On ajoute 1 pour les frais de dossier
|
|
171
171
|
mockdate_1.default.reset();
|
|
172
172
|
});
|
|
173
173
|
test('should return a number of payments equal to 3 (if in 3 last month of exercice)', () => {
|
|
174
174
|
const nbMonthDelay = 1;
|
|
175
|
-
const newFirstExerciceNonExpresssEndDate = (
|
|
175
|
+
const newFirstExerciceNonExpresssEndDate = dayjs().add(nbMonthDelay, 'month').endOf('month').toDate();
|
|
176
176
|
const payments = (0, payment_1.calculatePaymentsAuto)({
|
|
177
177
|
idTypeBrand: 1,
|
|
178
178
|
firstExerciceNonExpresssEndDate: newFirstExerciceNonExpresssEndDate,
|
|
@@ -191,14 +191,14 @@ describe('Payment', () => {
|
|
|
191
191
|
yearlyAmountNonExpress,
|
|
192
192
|
nextYearlyAmountNonExpress,
|
|
193
193
|
});
|
|
194
|
-
const listNonExpressPayments = payments.filter((p) => (
|
|
194
|
+
const listNonExpressPayments = payments.filter((p) => dayjs(p.closingDate).diff(newFirstExerciceNonExpresssEndDate) === 0);
|
|
195
195
|
expect(listNonExpressPayments.length).toStrictEqual(1 + 3); //On ajoute 1 pour les frais de dossier
|
|
196
196
|
});
|
|
197
197
|
test('should (yearlyAmountNonExpress - sum of listRegulations) / count of monthly payments be equal to monthly payment amount (if not in 3 last month)', () => {
|
|
198
|
-
const mockedDate = (
|
|
198
|
+
const mockedDate = dayjs('2024-05-15').toDate();
|
|
199
199
|
mockdate_1.default.set(mockedDate);
|
|
200
200
|
const nbMonthDelay = 6;
|
|
201
|
-
const newFirstExerciceNonExpresssEndDate = (
|
|
201
|
+
const newFirstExerciceNonExpresssEndDate = dayjs().add(nbMonthDelay, 'month').endOf('month').toDate();
|
|
202
202
|
const newListRegulations = [
|
|
203
203
|
{
|
|
204
204
|
amount: 50,
|
|
@@ -226,7 +226,7 @@ describe('Payment', () => {
|
|
|
226
226
|
});
|
|
227
227
|
test('should (totalAmount - firstPaymentAmount) / 3 be equal to monthly payment amount (if in 3 last month of exercice)', () => {
|
|
228
228
|
const nbMonthDelay = 1;
|
|
229
|
-
const newFirstExerciceNonExpresssEndDate = (
|
|
229
|
+
const newFirstExerciceNonExpresssEndDate = dayjs().add(nbMonthDelay, 'month').endOf('month').toDate();
|
|
230
230
|
const newListRegulations = [
|
|
231
231
|
{
|
|
232
232
|
amount: 50,
|
|
@@ -253,9 +253,9 @@ describe('Payment', () => {
|
|
|
253
253
|
});
|
|
254
254
|
// annual price increase
|
|
255
255
|
test('should apply annual price increase (2,75%) if signed before last 3 months of civil year', () => {
|
|
256
|
-
const mockedDate = (
|
|
256
|
+
const mockedDate = dayjs('2024-08-15').toDate();
|
|
257
257
|
mockdate_1.default.set(mockedDate);
|
|
258
|
-
const newFirstExerciceNonExpresssEndDate = (
|
|
258
|
+
const newFirstExerciceNonExpresssEndDate = dayjs().add(11, 'month').endOf('month').toDate();
|
|
259
259
|
const payments = (0, payment_1.calculatePaymentsAuto)({
|
|
260
260
|
idTypeBrand: 1,
|
|
261
261
|
firstExerciceNonExpresssEndDate: newFirstExerciceNonExpresssEndDate,
|
|
@@ -274,15 +274,15 @@ describe('Payment', () => {
|
|
|
274
274
|
yearlyAmountNonExpress,
|
|
275
275
|
nextYearlyAmountNonExpress,
|
|
276
276
|
});
|
|
277
|
-
const listNonExpressPayments = payments.filter((p) => (
|
|
277
|
+
const listNonExpressPayments = payments.filter((p) => dayjs(p.closingDate).diff(newFirstExerciceNonExpresssEndDate) === 0);
|
|
278
278
|
const firstPaymentWithTaxRateForced = listNonExpressPayments[1].amount * 1.0275;
|
|
279
279
|
expect(firstPaymentWithTaxRateForced - listNonExpressPayments.splice(-2)[0].amount).toBeLessThanOrEqual(0.01); //Permet de gérer le pb d'arrondi
|
|
280
280
|
mockdate_1.default.reset();
|
|
281
281
|
});
|
|
282
282
|
test('should not apply annual price increase (2,75%) if signed in last 3 months of civil year', () => {
|
|
283
|
-
const mockedDate = (
|
|
283
|
+
const mockedDate = dayjs('2024-11-15').toDate();
|
|
284
284
|
mockdate_1.default.set(mockedDate);
|
|
285
|
-
const newFirstExerciceNonExpresssEndDate = (
|
|
285
|
+
const newFirstExerciceNonExpresssEndDate = dayjs().add(11, 'month').endOf('month').toDate();
|
|
286
286
|
const payments = (0, payment_1.calculatePaymentsAuto)({
|
|
287
287
|
idTypeBrand: 1,
|
|
288
288
|
firstExerciceNonExpresssEndDate: newFirstExerciceNonExpresssEndDate,
|
|
@@ -301,15 +301,15 @@ describe('Payment', () => {
|
|
|
301
301
|
yearlyAmountNonExpress,
|
|
302
302
|
nextYearlyAmountNonExpress,
|
|
303
303
|
});
|
|
304
|
-
const listNonExpressPayments = payments.filter((p) => (
|
|
304
|
+
const listNonExpressPayments = payments.filter((p) => dayjs(p.datePayment).diff(dayjs('2025-06-01')) === 0);
|
|
305
305
|
expect(listNonExpressPayments[0].amount).toStrictEqual(listNonExpressPayments.splice(-2)[0].amount);
|
|
306
306
|
mockdate_1.default.reset();
|
|
307
307
|
});
|
|
308
308
|
test('should apply 14,9€ HT increase for the second exercice created (only offered on first exo) (no rules for 3 last months)', () => {
|
|
309
309
|
var _a, _b;
|
|
310
|
-
const mockedDate = (
|
|
310
|
+
const mockedDate = dayjs('2024-06-15').toDate();
|
|
311
311
|
mockdate_1.default.set(mockedDate);
|
|
312
|
-
const newFirstExerciceNonExpresssEndDate = (
|
|
312
|
+
const newFirstExerciceNonExpresssEndDate = dayjs().add(12, 'month').endOf('month').toDate();
|
|
313
313
|
const payments = (0, payment_1.calculatePaymentsAuto)({
|
|
314
314
|
idTypeBrand: 1,
|
|
315
315
|
firstExerciceNonExpresssEndDate: newFirstExerciceNonExpresssEndDate,
|
|
@@ -328,8 +328,8 @@ describe('Payment', () => {
|
|
|
328
328
|
yearlyAmountNonExpress,
|
|
329
329
|
nextYearlyAmountNonExpress,
|
|
330
330
|
});
|
|
331
|
-
const paymentsOfFirstExo = (_a = payments.filter((p) => (
|
|
332
|
-
const paymentsOfSecondExo = (_b = payments.filter((p) => (
|
|
331
|
+
const paymentsOfFirstExo = (_a = payments.filter((p) => dayjs(p.datePayment).diff(dayjs('2025-06-01')) === 0)[0].amount) !== null && _a !== void 0 ? _a : 0;
|
|
332
|
+
const paymentsOfSecondExo = (_b = payments.filter((p) => dayjs(p.datePayment).diff(dayjs('2025-07-01')) === 0).splice(-1)[0].amount) !== null && _b !== void 0 ? _b : 0;
|
|
333
333
|
expect(Math.round(100 * (paymentsOfFirstExo + (0, types_1.getTaxesIncludedAmount)(appCost, idVat) * 1.0275)) / 100).toStrictEqual(paymentsOfSecondExo);
|
|
334
334
|
mockdate_1.default.reset();
|
|
335
335
|
});
|
|
@@ -337,8 +337,8 @@ describe('Payment', () => {
|
|
|
337
337
|
test('should payments been generated sorted by exercices start date', () => {
|
|
338
338
|
var _a;
|
|
339
339
|
const listPartialExercicePrestationExpressCloned = [...listPartialExercicePrestationExpress];
|
|
340
|
-
listPartialExercicePrestationExpressCloned[0] = Object.assign(Object.assign({}, listPartialExercicePrestationExpress[0]), { startDate: (
|
|
341
|
-
listPartialExercicePrestationExpressCloned[1] = Object.assign(Object.assign({}, listPartialExercicePrestationExpress[1]), { startDate: (
|
|
340
|
+
listPartialExercicePrestationExpressCloned[0] = Object.assign(Object.assign({}, listPartialExercicePrestationExpress[0]), { startDate: dayjs().add(1, 'year').startOf('month').toDate() });
|
|
341
|
+
listPartialExercicePrestationExpressCloned[1] = Object.assign(Object.assign({}, listPartialExercicePrestationExpress[1]), { startDate: dayjs().startOf('month').toDate() });
|
|
342
342
|
const payments = (0, payment_1.calculatePaymentsAuto)({
|
|
343
343
|
idTypeBrand: 1,
|
|
344
344
|
firstExerciceNonExpresssEndDate,
|
|
@@ -353,10 +353,10 @@ describe('Payment', () => {
|
|
|
353
353
|
nextYearlyAmountNonExpress,
|
|
354
354
|
});
|
|
355
355
|
expect(payments.length).toBeGreaterThanOrEqual(4);
|
|
356
|
-
expect((
|
|
356
|
+
expect(dayjs(payments[payments.length - 1].datePayment).diff(dayjs((_a = payments === null || payments === void 0 ? void 0 : payments[0]) === null || _a === void 0 ? void 0 : _a.datePayment), 'month')).toBeGreaterThan(0);
|
|
357
357
|
});
|
|
358
358
|
test('if regulations are bigger than sum exercice prestation amounts, should pass some exercice payments', () => {
|
|
359
|
-
const mockedDate = (
|
|
359
|
+
const mockedDate = dayjs('2024-03-15').toDate();
|
|
360
360
|
mockdate_1.default.set(mockedDate);
|
|
361
361
|
const payments = (0, payment_1.calculatePaymentsAuto)({
|
|
362
362
|
idTypeBrand: 1,
|
|
@@ -395,7 +395,7 @@ describe('Payment', () => {
|
|
|
395
395
|
});
|
|
396
396
|
test('should not consider actual month if signed in last 3 days of month', () => {
|
|
397
397
|
var _a;
|
|
398
|
-
const mockedDate = (
|
|
398
|
+
const mockedDate = dayjs('2024-03-29').toDate();
|
|
399
399
|
mockdate_1.default.set(mockedDate);
|
|
400
400
|
const payments = (0, payment_1.calculatePaymentsAuto)({
|
|
401
401
|
idTypeBrand: 1,
|
|
@@ -411,11 +411,11 @@ describe('Payment', () => {
|
|
|
411
411
|
nextYearlyAmountNonExpress,
|
|
412
412
|
});
|
|
413
413
|
expect(payments.length).toBeGreaterThanOrEqual(4);
|
|
414
|
-
expect((_a = payments === null || payments === void 0 ? void 0 : payments[1]) === null || _a === void 0 ? void 0 : _a.datePayment).toStrictEqual((
|
|
414
|
+
expect((_a = payments === null || payments === void 0 ? void 0 : payments[1]) === null || _a === void 0 ? void 0 : _a.datePayment).toStrictEqual(dayjs().add(2, 'month').startOf('month').toDate());
|
|
415
415
|
mockdate_1.default.reset();
|
|
416
416
|
});
|
|
417
417
|
test('last payment returned should be last of a year (12/XX)', () => {
|
|
418
|
-
const mockedDate = (
|
|
418
|
+
const mockedDate = dayjs('2024-03-29').toDate();
|
|
419
419
|
mockdate_1.default.set(mockedDate);
|
|
420
420
|
const payments = (0, payment_1.calculatePaymentsAuto)({
|
|
421
421
|
idTypeBrand: 1,
|
|
@@ -431,7 +431,7 @@ describe('Payment', () => {
|
|
|
431
431
|
nextYearlyAmountNonExpress,
|
|
432
432
|
});
|
|
433
433
|
expect(payments.length).toBeGreaterThanOrEqual(4);
|
|
434
|
-
expect((
|
|
434
|
+
expect(dayjs(payments[payments.length - 1].datePayment).month()).toStrictEqual(11);
|
|
435
435
|
});
|
|
436
436
|
test('first payment and last payment should have at least one year difference (ex. : 23 - 24)', () => {
|
|
437
437
|
var _a, _b, _c;
|
|
@@ -448,13 +448,13 @@ describe('Payment', () => {
|
|
|
448
448
|
yearlyAmountNonExpress,
|
|
449
449
|
nextYearlyAmountNonExpress,
|
|
450
450
|
});
|
|
451
|
-
expect((
|
|
451
|
+
expect(dayjs((_b = (_a = payments.slice(-1)) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.datePayment).diff(dayjs((_c = payments === null || payments === void 0 ? void 0 : payments[0]) === null || _c === void 0 ? void 0 : _c.datePayment), 'year', true)).toBeGreaterThan(1);
|
|
452
452
|
});
|
|
453
453
|
test('real case : idSociety 114440', () => {
|
|
454
454
|
var _a, _b, _c;
|
|
455
455
|
const payments = (0, payment_1.calculatePaymentsAuto)({
|
|
456
456
|
idTypeBrand: 1,
|
|
457
|
-
firstExerciceNonExpresssEndDate: (
|
|
457
|
+
firstExerciceNonExpresssEndDate: dayjs('2024-12-31').toDate(),
|
|
458
458
|
idPrestation,
|
|
459
459
|
// isWithApplicationFees: true,
|
|
460
460
|
// idLegalForm: LegalFormTypeEnum.SARL,
|
|
@@ -465,7 +465,7 @@ describe('Payment', () => {
|
|
|
465
465
|
{
|
|
466
466
|
amount: 1006.8,
|
|
467
467
|
amountUsed: 0,
|
|
468
|
-
date: (
|
|
468
|
+
date: dayjs('2024-06-06').toDate(),
|
|
469
469
|
processed: false,
|
|
470
470
|
idPaymentMethod: types_1.PaymentMethod.BANK_CARD.id,
|
|
471
471
|
idSociety,
|
|
@@ -474,7 +474,7 @@ describe('Payment', () => {
|
|
|
474
474
|
yearlyAmountNonExpress: 1433,
|
|
475
475
|
nextYearlyAmountNonExpress: 1433,
|
|
476
476
|
});
|
|
477
|
-
expect((
|
|
477
|
+
expect(dayjs((_b = (_a = payments.slice(-1)) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.datePayment).diff(dayjs((_c = payments === null || payments === void 0 ? void 0 : payments[0]) === null || _c === void 0 ? void 0 : _c.datePayment), 'year', true)).toBeGreaterThan(1);
|
|
478
478
|
});
|
|
479
479
|
});
|
|
480
480
|
});
|