@silexpert/core 1.3.30-0 → 1.3.30-2
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/Ai.d.ts +2 -2
- package/dist/cjs/api/resources/Ai.d.ts.map +1 -1
- package/dist/cjs/api/resources/Ai.js +2 -2
- package/dist/cjs/api/resources/Ai.js.map +1 -1
- package/dist/cjs/api/resources/AnalyticsUtm.d.ts +10 -0
- package/dist/cjs/api/resources/AnalyticsUtm.d.ts.map +1 -0
- package/dist/cjs/api/resources/AnalyticsUtm.js +16 -0
- package/dist/cjs/api/resources/AnalyticsUtm.js.map +1 -0
- package/dist/cjs/api/resources/PaymentExpectation.d.ts +16 -1
- package/dist/cjs/api/resources/PaymentExpectation.d.ts.map +1 -1
- package/dist/cjs/api/resources/PaymentExpectation.js +20 -0
- package/dist/cjs/api/resources/PaymentExpectation.js.map +1 -1
- package/dist/cjs/api/resources/prestation.d.ts +3 -1
- package/dist/cjs/api/resources/prestation.d.ts.map +1 -1
- package/dist/cjs/api/resources/prestation.js.map +1 -1
- package/dist/cjs/api/resources/statistic/Legal.d.ts +11 -0
- package/dist/cjs/api/resources/statistic/Legal.d.ts.map +1 -0
- package/dist/cjs/api/resources/statistic/Legal.js +16 -0
- package/dist/cjs/api/resources/statistic/Legal.js.map +1 -0
- package/dist/cjs/api/resources.d.ts +4 -0
- package/dist/cjs/api/resources.d.ts.map +1 -1
- package/dist/cjs/api/resources.js +4 -0
- package/dist/cjs/api/resources.js.map +1 -1
- package/dist/cjs/types/Enum/Feature.d.ts +38 -0
- package/dist/cjs/types/Enum/Feature.d.ts.map +1 -0
- package/dist/cjs/types/Enum/Feature.js +61 -0
- package/dist/cjs/types/Enum/Feature.js.map +1 -0
- package/dist/cjs/types/Enum/StatisticType.d.ts +2 -1
- package/dist/cjs/types/Enum/StatisticType.d.ts.map +1 -1
- package/dist/cjs/types/Enum/StatisticType.js +1 -0
- package/dist/cjs/types/Enum/StatisticType.js.map +1 -1
- package/dist/cjs/types/Enum/StatusRating.d.ts.map +1 -1
- package/dist/cjs/types/Enum/StatusRating.js +1 -0
- package/dist/cjs/types/Enum/StatusRating.js.map +1 -1
- package/dist/cjs/types/Interface/api/accountingFiles/queryAccountingFiles.d.ts +1 -1
- package/dist/cjs/types/Interface/api/accountingFiles/queryAccountingFiles.js +1 -1
- package/dist/cjs/types/Interface/api/accountingFiles/queryAccountingFiles.js.map +1 -1
- package/dist/cjs/types/Interface/api/accountingTransaction/QueryTransaction.d.ts +1 -1
- package/dist/cjs/types/Interface/api/accountingTransaction/QueryTransaction.js +1 -1
- package/dist/cjs/types/Interface/api/accountingTransaction/QueryTransaction.js.map +1 -1
- package/dist/cjs/types/Interface/api/ai/AskQuestionCollaborator.d.ts +6 -0
- package/dist/cjs/types/Interface/api/ai/AskQuestionCollaborator.d.ts.map +1 -1
- package/dist/cjs/types/Interface/api/ai/AskQuestionCollaborator.js +29 -1
- package/dist/cjs/types/Interface/api/ai/AskQuestionCollaborator.js.map +1 -1
- package/dist/cjs/types/Interface/api/commercialManagement/Create.d.ts +6 -2
- package/dist/cjs/types/Interface/api/commercialManagement/Create.d.ts.map +1 -1
- package/dist/cjs/types/Interface/api/commercialManagement/Create.js +5 -1
- package/dist/cjs/types/Interface/api/commercialManagement/Create.js.map +1 -1
- package/dist/cjs/types/Interface/api/mobile/UpdateMobile.d.ts +5 -0
- package/dist/cjs/types/Interface/api/mobile/UpdateMobile.d.ts.map +1 -1
- package/dist/cjs/types/Interface/api/mobile/UpdateMobile.js +33 -0
- package/dist/cjs/types/Interface/api/mobile/UpdateMobile.js.map +1 -1
- package/dist/cjs/types/Interface/api/promoCode/CreateDefaultPromoCode.d.ts.map +1 -1
- package/dist/cjs/types/Interface/api/promoCode/CreateDefaultPromoCode.js +3 -0
- package/dist/cjs/types/Interface/api/promoCode/CreateDefaultPromoCode.js.map +1 -1
- package/dist/cjs/types/Interface/api/statistic/QueryInternal.d.ts +3 -0
- package/dist/cjs/types/Interface/api/statistic/QueryInternal.d.ts.map +1 -1
- package/dist/cjs/types/Interface/api/statistic/QueryInternal.js +10 -1
- package/dist/cjs/types/Interface/api/statistic/QueryInternal.js.map +1 -1
- package/dist/cjs/types/Interface/api/statistic/QueryLegal.d.ts +6 -0
- package/dist/cjs/types/Interface/api/statistic/QueryLegal.d.ts.map +1 -0
- package/dist/cjs/types/Interface/api/statistic/QueryLegal.js +33 -0
- package/dist/cjs/types/Interface/api/statistic/QueryLegal.js.map +1 -0
- package/dist/cjs/types/Interface/api/stripe/Create.d.ts +8 -0
- package/dist/cjs/types/Interface/api/stripe/Create.d.ts.map +1 -1
- package/dist/cjs/types/Interface/api/stripe/Create.js +27 -1
- package/dist/cjs/types/Interface/api/stripe/Create.js.map +1 -1
- package/dist/cjs/types/Interface/api/stripe/QueryStripe.d.ts +3 -0
- package/dist/cjs/types/Interface/api/stripe/QueryStripe.d.ts.map +1 -1
- package/dist/cjs/types/Interface/api/stripe/QueryStripe.js +9 -1
- package/dist/cjs/types/Interface/api/stripe/QueryStripe.js.map +1 -1
- package/dist/cjs/types/Interface/api/taxDeadline/ReadTaxDeadline.d.ts +1 -0
- package/dist/cjs/types/Interface/api/taxDeadline/ReadTaxDeadline.d.ts.map +1 -1
- package/dist/cjs/types/Interface/api/taxDeadline/ReadTaxDeadline.js.map +1 -1
- package/dist/cjs/types/Interface/api/vatDeclaration/QueryVatDeclaration.js +3 -2
- package/dist/cjs/types/Interface/api/vatDeclaration/QueryVatDeclaration.js.map +1 -1
- package/dist/cjs/types/Interface/models/IAIConversation.d.ts +11 -0
- package/dist/cjs/types/Interface/models/IAIConversation.d.ts.map +1 -0
- package/dist/cjs/types/Interface/models/IAIConversation.js +3 -0
- package/dist/cjs/types/Interface/models/IAIConversation.js.map +1 -0
- package/dist/cjs/types/Interface/models/IAIQuestion.d.ts +5 -5
- package/dist/cjs/types/Interface/models/IAIQuestion.d.ts.map +1 -1
- package/dist/cjs/types/Interface/models/IAIQuestion.js.map +1 -1
- package/dist/cjs/types/Interface/models/IMobile.d.ts +5 -0
- package/dist/cjs/types/Interface/models/IMobile.d.ts.map +1 -1
- package/dist/cjs/types/Interface/models/IMobile.js.map +1 -1
- package/dist/cjs/types/Interface/models/IPrestationComplementary.d.ts +2 -0
- package/dist/cjs/types/Interface/models/IPrestationComplementary.d.ts.map +1 -1
- package/dist/cjs/types/Interface/models/IPrestationComplementary.js.map +1 -1
- package/dist/cjs/types/Interface/models/ISociety.d.ts +2 -1
- package/dist/cjs/types/Interface/models/ISociety.d.ts.map +1 -1
- package/dist/cjs/types/Interface/models/ISociety.js.map +1 -1
- package/dist/cjs/types/index.d.ts +3 -0
- package/dist/cjs/types/index.d.ts.map +1 -1
- package/dist/cjs/types/index.js +3 -0
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/utils/commercialManagement/document.d.ts.map +1 -1
- package/dist/cjs/utils/commercialManagement/document.js +19 -18
- package/dist/cjs/utils/commercialManagement/document.js.map +1 -1
- package/dist/cjs/utils/commercialManagement/templates/body.js +1 -1
- package/dist/cjs/utils/commercialManagement/templates/body.js.map +1 -1
- package/dist/cjs/utils/commercialManagement/templates/common.js +1 -1
- package/dist/cjs/utils/commercialManagement/templates/common.js.map +1 -1
- package/dist/mjs/api/resources/Ai.d.ts +2 -2
- package/dist/mjs/api/resources/Ai.d.ts.map +1 -1
- package/dist/mjs/api/resources/Ai.js +2 -2
- package/dist/mjs/api/resources/Ai.js.map +1 -1
- package/dist/mjs/api/resources/AnalyticsUtm.d.ts +10 -0
- package/dist/mjs/api/resources/AnalyticsUtm.d.ts.map +1 -0
- package/dist/mjs/api/resources/AnalyticsUtm.js +12 -0
- package/dist/mjs/api/resources/AnalyticsUtm.js.map +1 -0
- package/dist/mjs/api/resources/PaymentExpectation.d.ts +16 -1
- package/dist/mjs/api/resources/PaymentExpectation.d.ts.map +1 -1
- package/dist/mjs/api/resources/PaymentExpectation.js +20 -0
- package/dist/mjs/api/resources/PaymentExpectation.js.map +1 -1
- package/dist/mjs/api/resources/prestation.d.ts +3 -1
- package/dist/mjs/api/resources/prestation.d.ts.map +1 -1
- package/dist/mjs/api/resources/prestation.js.map +1 -1
- package/dist/mjs/api/resources/statistic/Legal.d.ts +11 -0
- package/dist/mjs/api/resources/statistic/Legal.d.ts.map +1 -0
- package/dist/mjs/api/resources/statistic/Legal.js +15 -0
- package/dist/mjs/api/resources/statistic/Legal.js.map +1 -0
- package/dist/mjs/api/resources.d.ts +4 -0
- package/dist/mjs/api/resources.d.ts.map +1 -1
- package/dist/mjs/api/resources.js +4 -0
- package/dist/mjs/api/resources.js.map +1 -1
- package/dist/mjs/types/Enum/Feature.d.ts +38 -0
- package/dist/mjs/types/Enum/Feature.d.ts.map +1 -0
- package/dist/mjs/types/Enum/Feature.js +58 -0
- package/dist/mjs/types/Enum/Feature.js.map +1 -0
- package/dist/mjs/types/Enum/StatisticType.d.ts +2 -1
- package/dist/mjs/types/Enum/StatisticType.d.ts.map +1 -1
- package/dist/mjs/types/Enum/StatisticType.js +1 -0
- package/dist/mjs/types/Enum/StatisticType.js.map +1 -1
- package/dist/mjs/types/Enum/StatusRating.d.ts.map +1 -1
- package/dist/mjs/types/Enum/StatusRating.js +1 -0
- package/dist/mjs/types/Enum/StatusRating.js.map +1 -1
- package/dist/mjs/types/Interface/api/accountingFiles/queryAccountingFiles.d.ts +1 -1
- package/dist/mjs/types/Interface/api/accountingFiles/queryAccountingFiles.js +2 -2
- package/dist/mjs/types/Interface/api/accountingFiles/queryAccountingFiles.js.map +1 -1
- package/dist/mjs/types/Interface/api/accountingTransaction/QueryTransaction.d.ts +1 -1
- package/dist/mjs/types/Interface/api/accountingTransaction/QueryTransaction.js +2 -2
- package/dist/mjs/types/Interface/api/accountingTransaction/QueryTransaction.js.map +1 -1
- package/dist/mjs/types/Interface/api/ai/AskQuestionCollaborator.d.ts +6 -0
- package/dist/mjs/types/Interface/api/ai/AskQuestionCollaborator.d.ts.map +1 -1
- package/dist/mjs/types/Interface/api/ai/AskQuestionCollaborator.js +33 -2
- package/dist/mjs/types/Interface/api/ai/AskQuestionCollaborator.js.map +1 -1
- package/dist/mjs/types/Interface/api/commercialManagement/Create.d.ts +6 -2
- package/dist/mjs/types/Interface/api/commercialManagement/Create.d.ts.map +1 -1
- package/dist/mjs/types/Interface/api/commercialManagement/Create.js +9 -1
- package/dist/mjs/types/Interface/api/commercialManagement/Create.js.map +1 -1
- package/dist/mjs/types/Interface/api/mobile/UpdateMobile.d.ts +5 -0
- package/dist/mjs/types/Interface/api/mobile/UpdateMobile.d.ts.map +1 -1
- package/dist/mjs/types/Interface/api/mobile/UpdateMobile.js +38 -0
- package/dist/mjs/types/Interface/api/mobile/UpdateMobile.js.map +1 -1
- package/dist/mjs/types/Interface/api/promoCode/CreateDefaultPromoCode.d.ts.map +1 -1
- package/dist/mjs/types/Interface/api/promoCode/CreateDefaultPromoCode.js +4 -1
- package/dist/mjs/types/Interface/api/promoCode/CreateDefaultPromoCode.js.map +1 -1
- package/dist/mjs/types/Interface/api/statistic/QueryInternal.d.ts +3 -0
- package/dist/mjs/types/Interface/api/statistic/QueryInternal.d.ts.map +1 -1
- package/dist/mjs/types/Interface/api/statistic/QueryInternal.js +9 -0
- package/dist/mjs/types/Interface/api/statistic/QueryInternal.js.map +1 -1
- package/dist/mjs/types/Interface/api/statistic/QueryLegal.d.ts +6 -0
- package/dist/mjs/types/Interface/api/statistic/QueryLegal.d.ts.map +1 -0
- package/dist/mjs/types/Interface/api/statistic/QueryLegal.js +32 -0
- package/dist/mjs/types/Interface/api/statistic/QueryLegal.js.map +1 -0
- package/dist/mjs/types/Interface/api/stripe/Create.d.ts +8 -0
- package/dist/mjs/types/Interface/api/stripe/Create.d.ts.map +1 -1
- package/dist/mjs/types/Interface/api/stripe/Create.js +29 -1
- package/dist/mjs/types/Interface/api/stripe/Create.js.map +1 -1
- package/dist/mjs/types/Interface/api/stripe/QueryStripe.d.ts +3 -0
- package/dist/mjs/types/Interface/api/stripe/QueryStripe.d.ts.map +1 -1
- package/dist/mjs/types/Interface/api/stripe/QueryStripe.js +8 -0
- package/dist/mjs/types/Interface/api/stripe/QueryStripe.js.map +1 -1
- package/dist/mjs/types/Interface/api/taxDeadline/ReadTaxDeadline.d.ts +1 -0
- package/dist/mjs/types/Interface/api/taxDeadline/ReadTaxDeadline.d.ts.map +1 -1
- package/dist/mjs/types/Interface/api/taxDeadline/ReadTaxDeadline.js +1 -0
- package/dist/mjs/types/Interface/api/taxDeadline/ReadTaxDeadline.js.map +1 -1
- package/dist/mjs/types/Interface/api/vatDeclaration/QueryVatDeclaration.js +4 -3
- package/dist/mjs/types/Interface/api/vatDeclaration/QueryVatDeclaration.js.map +1 -1
- package/dist/mjs/types/Interface/models/IAIConversation.d.ts +11 -0
- package/dist/mjs/types/Interface/models/IAIConversation.d.ts.map +1 -0
- package/dist/mjs/types/Interface/models/IAIConversation.js +2 -0
- package/dist/mjs/types/Interface/models/IAIConversation.js.map +1 -0
- package/dist/mjs/types/Interface/models/IAIQuestion.d.ts +5 -5
- package/dist/mjs/types/Interface/models/IAIQuestion.d.ts.map +1 -1
- package/dist/mjs/types/Interface/models/IAIQuestion.js.map +1 -1
- package/dist/mjs/types/Interface/models/IMobile.d.ts +5 -0
- package/dist/mjs/types/Interface/models/IMobile.d.ts.map +1 -1
- package/dist/mjs/types/Interface/models/IMobile.js.map +1 -1
- package/dist/mjs/types/Interface/models/IPrestationComplementary.d.ts +2 -0
- package/dist/mjs/types/Interface/models/IPrestationComplementary.d.ts.map +1 -1
- package/dist/mjs/types/Interface/models/IPrestationComplementary.js.map +1 -1
- package/dist/mjs/types/Interface/models/ISociety.d.ts +2 -1
- package/dist/mjs/types/Interface/models/ISociety.d.ts.map +1 -1
- package/dist/mjs/types/Interface/models/ISociety.js.map +1 -1
- package/dist/mjs/types/index.d.ts +3 -0
- package/dist/mjs/types/index.d.ts.map +1 -1
- package/dist/mjs/types/index.js +3 -0
- package/dist/mjs/types/index.js.map +1 -1
- package/dist/mjs/utils/commercialManagement/document.d.ts.map +1 -1
- package/dist/mjs/utils/commercialManagement/document.js +3 -2
- package/dist/mjs/utils/commercialManagement/document.js.map +1 -1
- package/dist/mjs/utils/commercialManagement/templates/body.js +1 -1
- package/dist/mjs/utils/commercialManagement/templates/body.js.map +1 -1
- package/dist/mjs/utils/commercialManagement/templates/common.js +1 -1
- package/dist/mjs/utils/commercialManagement/templates/common.js.map +1 -1
- package/package.json +1 -1
- package/ts/api/resources/Ai.ts +3 -3
- package/ts/api/resources/AnalyticsUtm.ts +12 -0
- package/ts/api/resources/PaymentExpectation.ts +27 -0
- package/ts/api/resources/prestation.ts +1 -1
- package/ts/api/resources/statistic/Legal.ts +16 -0
- package/ts/api/resources.ts +4 -0
- package/ts/types/Enum/Feature.ts +62 -0
- package/ts/types/Enum/StatisticType.ts +1 -0
- package/ts/types/Enum/StatusRating.ts +1 -0
- package/ts/types/Interface/api/accountingFiles/queryAccountingFiles.ts +1 -1
- package/ts/types/Interface/api/accountingTransaction/QueryTransaction.ts +1 -1
- package/ts/types/Interface/api/ai/AskQuestionCollaborator.ts +25 -2
- package/ts/types/Interface/api/commercialManagement/Create.ts +8 -2
- package/ts/types/Interface/api/mobile/UpdateMobile.ts +28 -0
- package/ts/types/Interface/api/promoCode/CreateDefaultPromoCode.ts +4 -1
- package/ts/types/Interface/api/statistic/QueryInternal.ts +7 -0
- package/ts/types/Interface/api/statistic/QueryLegal.ts +16 -0
- package/ts/types/Interface/api/stripe/Create.ts +21 -1
- package/ts/types/Interface/api/stripe/QueryStripe.ts +5 -0
- package/ts/types/Interface/api/taxDeadline/ReadTaxDeadline.ts +1 -0
- package/ts/types/Interface/api/vatDeclaration/QueryVatDeclaration.ts +2 -2
- package/ts/types/Interface/models/IAIConversation.ts +13 -0
- package/ts/types/Interface/models/IAIQuestion.ts +5 -5
- package/ts/types/Interface/models/IMobile.ts +5 -0
- package/ts/types/Interface/models/IPrestationComplementary.ts +2 -0
- package/ts/types/Interface/models/ISociety.ts +2 -0
- package/ts/types/index.ts +3 -0
- package/ts/utils/commercialManagement/document.ts +3 -2
- package/ts/utils/commercialManagement/templates/body.ts +1 -1
- package/ts/utils/commercialManagement/templates/common.ts +1 -1
|
@@ -19,7 +19,7 @@ const ejs = require("ejs");
|
|
|
19
19
|
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
20
20
|
require('dayjs/locale/fr');
|
|
21
21
|
function generateCommercialDocument(idEstimateInvoiceType, payload, shouldHideBrandName = false, nodeEnv = undefined) {
|
|
22
|
-
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;
|
|
22
|
+
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;
|
|
23
23
|
const products = (0, lodash_1.orderBy)(payload.products.map((product) => (0, product_1.productToReadProductEditing)(product), 'reorder'));
|
|
24
24
|
const vats = (0, lodash_1.orderBy)(Object.values((0, lodash_1.groupBy)(products, 'vatFormatted')).map((v) => (0, vat_1.vatToReadVatEditing)(v), 'value')).filter((v) => v.id !== Vat_1.Vat.MARGE.id);
|
|
25
25
|
const thirdParty = (0, thirdParty_1.thirdPartyToReadThirdPartyEditing)(payload.thirdParty);
|
|
@@ -39,23 +39,24 @@ function generateCommercialDocument(idEstimateInvoiceType, payload, shouldHideBr
|
|
|
39
39
|
const locale = (_b = payload.language) !== null && _b !== void 0 ? _b : CommercialManagement_1.InvoiceLanguage.FR;
|
|
40
40
|
const languageOption = choices_1.internationalizationChoices[locale];
|
|
41
41
|
const accountingCategory = (_d = (_c = CommercialManagement_1.AccountingCategoryList.find((a) => a.id === payload.accountingCategory)) === null || _c === void 0 ? void 0 : _c.label) !== null && _d !== void 0 ? _d : null;
|
|
42
|
-
const
|
|
43
|
-
|
|
42
|
+
const recoveryCost = (_e = payload.recoveryCost) !== null && _e !== void 0 ? _e : payload.compensation;
|
|
43
|
+
const data = Object.assign(Object.assign({}, payload), { thirdParty, paymentLink: (_f = payload.paymentLink) !== null && _f !== void 0 ? _f : '#', idEstimateInvoiceType, title: (_g = payload.title) !== null && _g !== void 0 ? _g : null, penalties: payload.penalties
|
|
44
|
+
? ((_h = (0, choices_1.internationalizationConsistency)(locale, payload.penalties, 'penalties')) !== null && _h !== void 0 ? _h : payload.penalties)
|
|
44
45
|
: null, termsOfPayment: payload.termsOfPayment
|
|
45
|
-
? ((
|
|
46
|
-
: null,
|
|
47
|
-
? ((
|
|
46
|
+
? ((_j = (0, choices_1.internationalizationConsistency)(locale, payload.termsOfPayment, 'termsOfPayment')) !== null && _j !== void 0 ? _j : payload.termsOfPayment)
|
|
47
|
+
: null, recoveryCost: recoveryCost
|
|
48
|
+
? ((_k = (0, choices_1.internationalizationConsistency)(locale, recoveryCost, 'recoveryCost')) !== null && _k !== void 0 ? _k : recoveryCost)
|
|
48
49
|
: null, discount: payload.discount
|
|
49
|
-
? ((
|
|
50
|
+
? ((_l = (0, choices_1.internationalizationConsistency)(locale, payload.discount, 'discount')) !== null && _l !== void 0 ? _l : payload.discount)
|
|
50
51
|
: null, vatMention: payload.vatMention
|
|
51
|
-
? ((
|
|
52
|
-
: null, phoneContact: (
|
|
52
|
+
? ((_m = (0, choices_1.internationalizationConsistency)(locale, payload.vatMention, 'vatMention')) !== null && _m !== void 0 ? _m : payload.vatMention)
|
|
53
|
+
: null, phoneContact: (_p = (_o = payload.settings) === null || _o === void 0 ? void 0 : _o.phoneContact) !== null && _p !== void 0 ? _p : null, products,
|
|
53
54
|
vats, totalTaxExcluded: (0, lodash_1.sumBy)(products, 'totalTaxExcluded'), totalTaxIncluded: (0, lodash_1.round)(totalTaxIncluded), totalTaxAndDiscountIncluded: (0, lodash_1.round)(totalTaxIncluded), generalDiscountFormatted: payload.generalDiscount2
|
|
54
55
|
? (0, amount_1.integerToFormattedAmountString)(payload.generalDiscount2)
|
|
55
|
-
: null, depositFormatted: payload.deposit ? (0, amount_1.integerToFormattedAmountString)(payload.deposit) : null, totalTaxExcludedFormatted: (0, amount_1.integerToFormattedAmountString)((0, lodash_1.sumBy)(products, 'totalTaxExcluded')), totalTaxIncludedFormatted: (0, amount_1.integerToFormattedAmountString)(totalTaxIncluded), totalTaxAndDiscountIncludedFormatted: (0, amount_1.integerToFormattedAmountString)(totalTaxIncluded - ((
|
|
56
|
-
id: (
|
|
57
|
-
name: (
|
|
58
|
-
url: (
|
|
56
|
+
: null, depositFormatted: payload.deposit ? (0, amount_1.integerToFormattedAmountString)(payload.deposit) : null, totalTaxExcludedFormatted: (0, amount_1.integerToFormattedAmountString)((0, lodash_1.sumBy)(products, 'totalTaxExcluded')), totalTaxIncludedFormatted: (0, amount_1.integerToFormattedAmountString)(totalTaxIncluded), totalTaxAndDiscountIncludedFormatted: (0, amount_1.integerToFormattedAmountString)(totalTaxIncluded - ((_q = payload.generalDiscount2) !== null && _q !== void 0 ? _q : 0) - ((_r = payload.deposit) !== null && _r !== void 0 ? _r : 0)), totalVatAmountFormatted: (0, amount_1.integerToFormattedAmountString)((0, lodash_1.sumBy)(vats, 'amount')), font: {
|
|
57
|
+
id: (_t = (_s = payload.settings) === null || _s === void 0 ? void 0 : _s.idFont) !== null && _t !== void 0 ? _t : CommercialManagement_1.FontIds.CIRCULAR_STD,
|
|
58
|
+
name: (_v = (_u = CommercialManagement_1.fontList.find((f) => { var _a; return f.id === ((_a = payload.settings) === null || _a === void 0 ? void 0 : _a.idFont); })) === null || _u === void 0 ? void 0 : _u.name) !== null && _v !== void 0 ? _v : CommercialManagement_1.fontList[0].name,
|
|
59
|
+
url: (_x = (_w = CommercialManagement_1.fontList.find((f) => { var _a; return f.id === ((_a = payload.settings) === null || _a === void 0 ? void 0 : _a.idFont); })) === null || _w === void 0 ? void 0 : _w.link) !== null && _x !== void 0 ? _x : CommercialManagement_1.fontList[0].link,
|
|
59
60
|
}, capitalFormatted: payload.capital
|
|
60
61
|
? `${payload.capital}`
|
|
61
62
|
.split('')
|
|
@@ -64,19 +65,19 @@ function generateCommercialDocument(idEstimateInvoiceType, payload, shouldHideBr
|
|
|
64
65
|
: null, dueDateFormatted: payload.dueDate ? dayjs(payload.dueDate).format('DD/MM/YYYY') : null, expirationDateFormatted: payload.expirationDate ? dayjs(payload.expirationDate).format('DD/MM/YYYY') : null, emissionDateFormatted: payload.emissionDate ? dayjs(payload.emissionDate).format('DD/MM/YYYY') : null, shouldDisplayDiscountColumn: !!products.find((p) => p.discount2 && p.discount2 > 0),
|
|
65
66
|
// @ts-ignore
|
|
66
67
|
marginVats: (0, lodash_1.uniq)(products.filter((p) => p.marginVatFormatted !== null).map((p) => p.marginVatFormatted)), accountingCategoryFormatted: accountingCategory
|
|
67
|
-
? ((
|
|
68
|
+
? ((_y = (0, choices_1.internationalizationConsistency)(locale, accountingCategory, 'accountingCategory')) !== null && _y !== void 0 ? _y : null)
|
|
68
69
|
: null,
|
|
69
70
|
// @ts-ignore
|
|
70
71
|
brandColors: (0, brands_1.getBrandConfig)({ objectWaited: 'colors', nodeEnv }), brandName: `${(0, brands_1.getBrandConfig)({ objectWaited: 'name', nodeEnv })}`, shouldHideBrandName, paymentType: payload.paymentType
|
|
71
|
-
? ((
|
|
72
|
+
? ((_z = (0, choices_1.internationalizationConsistency)(locale, payload.paymentType, 'paymentType')) !== null && _z !== void 0 ? _z : payload.paymentType)
|
|
72
73
|
: null, languageTemplate: languageOption });
|
|
73
74
|
const commonTemplate = new common_1.CommercialDocumentCommonHTML();
|
|
74
75
|
const documentFreeText = [EstimateInvoice_1.EstimateInvoiceType.DEVIS, EstimateInvoice_1.EstimateInvoiceType.BON].includes(idEstimateInvoiceType)
|
|
75
|
-
? (
|
|
76
|
-
: (
|
|
76
|
+
? (_0 = payload === null || payload === void 0 ? void 0 : payload.settings) === null || _0 === void 0 ? void 0 : _0.freeEstimateText
|
|
77
|
+
: (_1 = payload === null || payload === void 0 ? void 0 : payload.settings) === null || _1 === void 0 ? void 0 : _1.freeInvoiceText;
|
|
77
78
|
return {
|
|
78
79
|
header: ejs.render(commonTemplate.header, data),
|
|
79
|
-
body: ejs.render(body_1.bodyTemplate, Object.assign(Object.assign({}, data), { comment: data.comment && typeof data.comment === 'string' ? (
|
|
80
|
+
body: ejs.render(body_1.bodyTemplate, Object.assign(Object.assign({}, data), { comment: data.comment && typeof data.comment === 'string' ? (_2 = data.comment) === null || _2 === void 0 ? void 0 : _2.replace(/\n/g, '<br/>') : null, products: data.products.map((p) => {
|
|
80
81
|
var _a;
|
|
81
82
|
return (Object.assign(Object.assign({}, p), { comment: p.comment && typeof p.comment === 'string' ? (_a = p.comment) === null || _a === void 0 ? void 0 : _a.replace(/\n/g, '<br/>') : null,
|
|
82
83
|
// @ts-expect-error
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../../../ts/utils/commercialManagement/document.ts"],"names":[],"mappings":"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","sourcesContent":["import { orderBy as _orderBy, groupBy as _groupBy, sumBy as _sumBy, uniq as _uniq, round as _round } from 'lodash';\nimport * as dayjs from 'dayjs';\nimport {\n ReadCommercialDocumentTemplate,\n ReadDocumentEditing,\n ReadVatEditing,\n} from '../../types/Interface/api/commercialManagement/Read';\nimport { AccountingCategoryList, FontIds, fontList, InvoiceLanguage } from '../../types/Enum/CommercialManagement';\nimport { EstimateInvoiceType } from '../../types/Enum/EstimateInvoice';\nimport { Vat } from '../../types/Enum/Vat';\nimport { integerToFormattedAmountString, integerToFormattedAmountObject } from '../amount';\nimport { CommercialDocumentCommonHTML, CommercialDocumentMailHTML } from './templates/common';\nimport { bodyTemplate } from './templates/body';\nimport { productToReadProductEditing } from './product';\nimport { vatToReadVatEditing } from './vat';\nimport {\n CreateInvoiceDocument,\n CreateMailHeader,\n CreatePreSaleDocument,\n ReadCommercialMailTemplate,\n} from '../../types';\nimport { thirdPartyToReadThirdPartyEditing } from './thirdParty';\nimport { getBrandConfig } from '../brands';\nimport { internationalizationChoices, internationalizationConsistency } from './internationalization/choices';\n\nimport * as ejs from 'ejs';\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nrequire('dayjs/locale/fr');\n\ntype brandColorType = {\n primary: string;\n primary50: string;\n primary100: string;\n primary300: string;\n primary500: string;\n primary700: string;\n};\n\nexport function generateCommercialDocument(\n idEstimateInvoiceType: EstimateInvoiceType,\n payload: CreateInvoiceDocument | CreatePreSaleDocument,\n shouldHideBrandName = false,\n nodeEnv: string | undefined = undefined,\n): ReadCommercialDocumentTemplate {\n const products = _orderBy(payload.products.map((product) => productToReadProductEditing(product), 'reorder'));\n const vats = _orderBy(\n Object.values(_groupBy(products, 'vatFormatted')).map((v) => vatToReadVatEditing(v), 'value'),\n ).filter((v) => v.id !== Vat.MARGE.id);\n const thirdParty = thirdPartyToReadThirdPartyEditing(payload.thirdParty);\n\n let forcedVats: ReadVatEditing[] | undefined = undefined;\n\n if (payload.advanceProducts?.length) {\n const advanceVats = Object.values(_groupBy(payload.advanceProducts, 'vatFormatted'))\n .map((v) => vatToReadVatEditing(v), 'value')\n .filter((v) => v.id !== Vat.MARGE.id);\n\n forcedVats = vats.map((v) => {\n const base = v.base - (advanceVats.find((a) => a.id === v.id)?.base ?? 0);\n const toPay = v.toPay - (advanceVats.find((a) => a.id === v.id)?.toPay ?? 0);\n return {\n ...v,\n baseFormatted: integerToFormattedAmountString(base),\n amountFormatted: integerToFormattedAmountString(toPay),\n };\n });\n }\n\n const totalTaxIncluded = _sumBy(products, 'totalTaxExcluded') + _sumBy(vats, 'amount');\n\n const locale = payload.language ?? InvoiceLanguage.FR;\n const languageOption = internationalizationChoices[locale];\n\n const accountingCategory = AccountingCategoryList.find((a) => a.id === payload.accountingCategory)?.label ?? null;\n\n const data: ReadDocumentEditing & { brandColors: brandColorType; brandName: string; shouldHideBrandName: boolean } = {\n ...payload,\n thirdParty,\n paymentLink: payload.paymentLink ?? '#',\n idEstimateInvoiceType,\n title: payload.title ?? null,\n penalties: payload.penalties\n ? (internationalizationConsistency(locale, payload.penalties, 'penalties') ?? payload.penalties)\n : null,\n termsOfPayment: payload.termsOfPayment\n ? (internationalizationConsistency(locale, payload.termsOfPayment, 'termsOfPayment') ?? payload.termsOfPayment)\n : null,\n compensation: payload.compensation\n ? (internationalizationConsistency(locale, payload.compensation, 'recoveryCost') ?? payload.compensation)\n : null,\n discount: payload.discount\n ? (internationalizationConsistency(locale, payload.discount, 'discount') ?? payload.discount)\n : null,\n vatMention: payload.vatMention\n ? (internationalizationConsistency(locale, payload.vatMention, 'vatMention') ?? payload.vatMention)\n : null,\n phoneContact: payload.settings?.phoneContact ?? null,\n products,\n vats,\n totalTaxExcluded: _sumBy(products, 'totalTaxExcluded'),\n totalTaxIncluded: _round(totalTaxIncluded),\n totalTaxAndDiscountIncluded: _round(totalTaxIncluded),\n generalDiscountFormatted: payload.generalDiscount2\n ? integerToFormattedAmountString(payload.generalDiscount2)\n : null,\n depositFormatted: payload.deposit ? integerToFormattedAmountString(payload.deposit) : null,\n totalTaxExcludedFormatted: integerToFormattedAmountString(_sumBy(products, 'totalTaxExcluded')),\n totalTaxIncludedFormatted: integerToFormattedAmountString(totalTaxIncluded),\n totalTaxAndDiscountIncludedFormatted: integerToFormattedAmountString(\n totalTaxIncluded - (payload.generalDiscount2 ?? 0) - (payload.deposit ?? 0),\n ),\n totalVatAmountFormatted: integerToFormattedAmountString(_sumBy(vats, 'amount')),\n font: {\n id: payload.settings?.idFont ?? FontIds.CIRCULAR_STD,\n name: fontList.find((f) => f.id === payload.settings?.idFont)?.name ?? fontList[0].name,\n url: fontList.find((f) => f.id === payload.settings?.idFont)?.link ?? fontList[0].link,\n },\n capitalFormatted: payload.capital\n ? `${payload.capital}`\n .split('')\n .reduceRight((acc, char, i, { length }) => `${char}${(length - (i + 1)) % 3 === 0 ? ' ' : ''}${acc}`, '')\n .trim()\n : null,\n dueDateFormatted: payload.dueDate ? dayjs(payload.dueDate).format('DD/MM/YYYY') : null,\n expirationDateFormatted: payload.expirationDate ? dayjs(payload.expirationDate).format('DD/MM/YYYY') : null,\n emissionDateFormatted: payload.emissionDate ? dayjs(payload.emissionDate).format('DD/MM/YYYY') : null,\n shouldDisplayDiscountColumn: !!products.find((p) => p.discount2 && p.discount2 > 0),\n // @ts-ignore\n marginVats: _uniq(products.filter((p) => p.marginVatFormatted !== null).map((p) => p.marginVatFormatted)),\n accountingCategoryFormatted: accountingCategory\n ? (internationalizationConsistency(locale, accountingCategory, 'accountingCategory') ?? null)\n : null,\n // @ts-ignore\n brandColors: getBrandConfig({ objectWaited: 'colors', nodeEnv }) as brandColorType,\n brandName: `${getBrandConfig({ objectWaited: 'name', nodeEnv }) as unknown as string}`,\n shouldHideBrandName,\n paymentType: payload.paymentType\n ? (internationalizationConsistency(locale, payload.paymentType, 'paymentType') ?? payload.paymentType)\n : null,\n languageTemplate: languageOption,\n };\n\n const commonTemplate = new CommercialDocumentCommonHTML();\n const documentFreeText = [EstimateInvoiceType.DEVIS, EstimateInvoiceType.BON].includes(idEstimateInvoiceType)\n ? payload?.settings?.freeEstimateText\n : payload?.settings?.freeInvoiceText;\n\n return {\n header: ejs.render(commonTemplate.header, data),\n body: ejs.render(bodyTemplate, {\n ...data,\n comment: data.comment && typeof data.comment === 'string' ? data.comment?.replace(/\\n/g, '<br/>') : null,\n products: data.products.map((p) => ({\n ...p,\n comment: p.comment && typeof p.comment === 'string' ? p.comment?.replace(/\\n/g, '<br/>') : null,\n // @ts-expect-error\n unitFormatted: internationalizationConsistency(locale, p.unitFormatted, 'unit'),\n })),\n vats: forcedVats ?? vats,\n }),\n footer: ejs.render(commonTemplate.footer, {\n ...data,\n freeText: documentFreeText ?? null,\n }),\n data,\n };\n}\n\nexport function generateMailHeader(\n params: CreateMailHeader,\n shouldHideBrandName = false,\n nodeEnv: string | undefined = undefined,\n): ReadCommercialMailTemplate {\n const locale = params.payload.language ?? InvoiceLanguage.FR;\n const languageOption = internationalizationChoices[locale];\n dayjs.locale('fr');\n const data = {\n ...params.payload,\n totalTaxExcludedFormatted: integerToFormattedAmountObject(params.payload.totalTaxExcluded),\n totalTaxIncludedFormatted: integerToFormattedAmountObject(params.payload.totalTaxIncluded),\n totalVatFormatted: integerToFormattedAmountObject(\n params.payload.totalTaxIncluded - params.payload.totalTaxExcluded,\n ),\n dueDateFormatted: params.payload.dueDate ? dayjs(params.payload.dueDate).format('DD MMMM YYYY') : null,\n hasVat: params.hasVat,\n hostS3: params.hostS3,\n logoUrl: params.logoUrl,\n companyName: params.companyName,\n fileUrl: params.fileUrl,\n // @ts-ignore\n brandColors: getBrandConfig({ objectWaited: 'colors', nodeEnv }) as brandColorType,\n shouldHideBrandName,\n languageMail: languageOption,\n };\n\n const mailTemplate = new CommercialDocumentMailHTML();\n\n return {\n header: ejs.render(mailTemplate.header, data),\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../../../ts/utils/commercialManagement/document.ts"],"names":[],"mappings":"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","sourcesContent":["import { orderBy as _orderBy, groupBy as _groupBy, sumBy as _sumBy, uniq as _uniq, round as _round } from 'lodash';\nimport * as dayjs from 'dayjs';\nimport {\n ReadCommercialDocumentTemplate,\n ReadDocumentEditing,\n ReadVatEditing,\n} from '../../types/Interface/api/commercialManagement/Read';\nimport { AccountingCategoryList, FontIds, fontList, InvoiceLanguage } from '../../types/Enum/CommercialManagement';\nimport { EstimateInvoiceType } from '../../types/Enum/EstimateInvoice';\nimport { Vat } from '../../types/Enum/Vat';\nimport { integerToFormattedAmountString, integerToFormattedAmountObject } from '../amount';\nimport { CommercialDocumentCommonHTML, CommercialDocumentMailHTML } from './templates/common';\nimport { bodyTemplate } from './templates/body';\nimport { productToReadProductEditing } from './product';\nimport { vatToReadVatEditing } from './vat';\nimport {\n CreateInvoiceDocument,\n CreateMailHeader,\n CreatePreSaleDocument,\n ReadCommercialMailTemplate,\n} from '../../types';\nimport { thirdPartyToReadThirdPartyEditing } from './thirdParty';\nimport { getBrandConfig } from '../brands';\nimport { internationalizationChoices, internationalizationConsistency } from './internationalization/choices';\n\nimport * as ejs from 'ejs';\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nrequire('dayjs/locale/fr');\n\ntype brandColorType = {\n primary: string;\n primary50: string;\n primary100: string;\n primary300: string;\n primary500: string;\n primary700: string;\n};\n\nexport function generateCommercialDocument(\n idEstimateInvoiceType: EstimateInvoiceType,\n payload: CreateInvoiceDocument | CreatePreSaleDocument,\n shouldHideBrandName = false,\n nodeEnv: string | undefined = undefined,\n): ReadCommercialDocumentTemplate {\n const products = _orderBy(payload.products.map((product) => productToReadProductEditing(product), 'reorder'));\n const vats = _orderBy(\n Object.values(_groupBy(products, 'vatFormatted')).map((v) => vatToReadVatEditing(v), 'value'),\n ).filter((v) => v.id !== Vat.MARGE.id);\n const thirdParty = thirdPartyToReadThirdPartyEditing(payload.thirdParty);\n\n let forcedVats: ReadVatEditing[] | undefined = undefined;\n\n if (payload.advanceProducts?.length) {\n const advanceVats = Object.values(_groupBy(payload.advanceProducts, 'vatFormatted'))\n .map((v) => vatToReadVatEditing(v), 'value')\n .filter((v) => v.id !== Vat.MARGE.id);\n\n forcedVats = vats.map((v) => {\n const base = v.base - (advanceVats.find((a) => a.id === v.id)?.base ?? 0);\n const toPay = v.toPay - (advanceVats.find((a) => a.id === v.id)?.toPay ?? 0);\n return {\n ...v,\n baseFormatted: integerToFormattedAmountString(base),\n amountFormatted: integerToFormattedAmountString(toPay),\n };\n });\n }\n\n const totalTaxIncluded = _sumBy(products, 'totalTaxExcluded') + _sumBy(vats, 'amount');\n\n const locale = payload.language ?? InvoiceLanguage.FR;\n const languageOption = internationalizationChoices[locale];\n\n const accountingCategory = AccountingCategoryList.find((a) => a.id === payload.accountingCategory)?.label ?? null;\n\n const recoveryCost = payload.recoveryCost ?? payload.compensation;\n const data: ReadDocumentEditing & { brandColors: brandColorType; brandName: string; shouldHideBrandName: boolean } = {\n ...payload,\n thirdParty,\n paymentLink: payload.paymentLink ?? '#',\n idEstimateInvoiceType,\n title: payload.title ?? null,\n penalties: payload.penalties\n ? (internationalizationConsistency(locale, payload.penalties, 'penalties') ?? payload.penalties)\n : null,\n termsOfPayment: payload.termsOfPayment\n ? (internationalizationConsistency(locale, payload.termsOfPayment, 'termsOfPayment') ?? payload.termsOfPayment)\n : null,\n recoveryCost: recoveryCost\n ? (internationalizationConsistency(locale, recoveryCost, 'recoveryCost') ?? recoveryCost)\n : null,\n discount: payload.discount\n ? (internationalizationConsistency(locale, payload.discount, 'discount') ?? payload.discount)\n : null,\n vatMention: payload.vatMention\n ? (internationalizationConsistency(locale, payload.vatMention, 'vatMention') ?? payload.vatMention)\n : null,\n phoneContact: payload.settings?.phoneContact ?? null,\n products,\n vats,\n totalTaxExcluded: _sumBy(products, 'totalTaxExcluded'),\n totalTaxIncluded: _round(totalTaxIncluded),\n totalTaxAndDiscountIncluded: _round(totalTaxIncluded),\n generalDiscountFormatted: payload.generalDiscount2\n ? integerToFormattedAmountString(payload.generalDiscount2)\n : null,\n depositFormatted: payload.deposit ? integerToFormattedAmountString(payload.deposit) : null,\n totalTaxExcludedFormatted: integerToFormattedAmountString(_sumBy(products, 'totalTaxExcluded')),\n totalTaxIncludedFormatted: integerToFormattedAmountString(totalTaxIncluded),\n totalTaxAndDiscountIncludedFormatted: integerToFormattedAmountString(\n totalTaxIncluded - (payload.generalDiscount2 ?? 0) - (payload.deposit ?? 0),\n ),\n totalVatAmountFormatted: integerToFormattedAmountString(_sumBy(vats, 'amount')),\n font: {\n id: payload.settings?.idFont ?? FontIds.CIRCULAR_STD,\n name: fontList.find((f) => f.id === payload.settings?.idFont)?.name ?? fontList[0].name,\n url: fontList.find((f) => f.id === payload.settings?.idFont)?.link ?? fontList[0].link,\n },\n capitalFormatted: payload.capital\n ? `${payload.capital}`\n .split('')\n .reduceRight((acc, char, i, { length }) => `${char}${(length - (i + 1)) % 3 === 0 ? ' ' : ''}${acc}`, '')\n .trim()\n : null,\n dueDateFormatted: payload.dueDate ? dayjs(payload.dueDate).format('DD/MM/YYYY') : null,\n expirationDateFormatted: payload.expirationDate ? dayjs(payload.expirationDate).format('DD/MM/YYYY') : null,\n emissionDateFormatted: payload.emissionDate ? dayjs(payload.emissionDate).format('DD/MM/YYYY') : null,\n shouldDisplayDiscountColumn: !!products.find((p) => p.discount2 && p.discount2 > 0),\n // @ts-ignore\n marginVats: _uniq(products.filter((p) => p.marginVatFormatted !== null).map((p) => p.marginVatFormatted)),\n accountingCategoryFormatted: accountingCategory\n ? (internationalizationConsistency(locale, accountingCategory, 'accountingCategory') ?? null)\n : null,\n // @ts-ignore\n brandColors: getBrandConfig({ objectWaited: 'colors', nodeEnv }) as brandColorType,\n brandName: `${getBrandConfig({ objectWaited: 'name', nodeEnv }) as unknown as string}`,\n shouldHideBrandName,\n paymentType: payload.paymentType\n ? (internationalizationConsistency(locale, payload.paymentType, 'paymentType') ?? payload.paymentType)\n : null,\n languageTemplate: languageOption,\n };\n\n const commonTemplate = new CommercialDocumentCommonHTML();\n const documentFreeText = [EstimateInvoiceType.DEVIS, EstimateInvoiceType.BON].includes(idEstimateInvoiceType)\n ? payload?.settings?.freeEstimateText\n : payload?.settings?.freeInvoiceText;\n\n return {\n header: ejs.render(commonTemplate.header, data),\n body: ejs.render(bodyTemplate, {\n ...data,\n comment: data.comment && typeof data.comment === 'string' ? data.comment?.replace(/\\n/g, '<br/>') : null,\n products: data.products.map((p) => ({\n ...p,\n comment: p.comment && typeof p.comment === 'string' ? p.comment?.replace(/\\n/g, '<br/>') : null,\n // @ts-expect-error\n unitFormatted: internationalizationConsistency(locale, p.unitFormatted, 'unit'),\n })),\n vats: forcedVats ?? vats,\n }),\n footer: ejs.render(commonTemplate.footer, {\n ...data,\n freeText: documentFreeText ?? null,\n }),\n data,\n };\n}\n\nexport function generateMailHeader(\n params: CreateMailHeader,\n shouldHideBrandName = false,\n nodeEnv: string | undefined = undefined,\n): ReadCommercialMailTemplate {\n const locale = params.payload.language ?? InvoiceLanguage.FR;\n const languageOption = internationalizationChoices[locale];\n dayjs.locale('fr');\n const data = {\n ...params.payload,\n totalTaxExcludedFormatted: integerToFormattedAmountObject(params.payload.totalTaxExcluded),\n totalTaxIncludedFormatted: integerToFormattedAmountObject(params.payload.totalTaxIncluded),\n totalVatFormatted: integerToFormattedAmountObject(\n params.payload.totalTaxIncluded - params.payload.totalTaxExcluded,\n ),\n dueDateFormatted: params.payload.dueDate ? dayjs(params.payload.dueDate).format('DD MMMM YYYY') : null,\n hasVat: params.hasVat,\n hostS3: params.hostS3,\n logoUrl: params.logoUrl,\n companyName: params.companyName,\n fileUrl: params.fileUrl,\n // @ts-ignore\n brandColors: getBrandConfig({ objectWaited: 'colors', nodeEnv }) as brandColorType,\n shouldHideBrandName,\n languageMail: languageOption,\n };\n\n const mailTemplate = new CommercialDocumentMailHTML();\n\n return {\n header: ejs.render(mailTemplate.header, data),\n };\n}\n"]}
|
|
@@ -82,7 +82,7 @@ exports.bodyTemplate = `<html class="pdf-content">
|
|
|
82
82
|
<% if (disableVat !== true && vats.length) { %>
|
|
83
83
|
${commonTemplate.vatRecapitulation}
|
|
84
84
|
<% } %>
|
|
85
|
-
<% if (vatMention) { %><div class="vat-mention <%= disableVat !== true ? 'mt-20' : ''%>"><%= vatMention %></div><% } %>
|
|
85
|
+
<% if (vatMention && vatMention !== 'TVA: Non concerné') { %><div class="vat-mention <%= disableVat !== true ? 'mt-20' : ''%>"><%= vatMention %></div><% } %>
|
|
86
86
|
<% if (comment) { %>
|
|
87
87
|
<p class="mt-20"><%= languageTemplate.template.common.options.comment %> :<br/>
|
|
88
88
|
<%- comment %>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"body.js","sourceRoot":"","sources":["../../../../../ts/utils/commercialManagement/templates/body.ts"],"names":[],"mappings":";;;AAAA,yEAA0E;AAC1E,qCAAwD;AAExD,MAAM,cAAc,GAAG,IAAI,qCAA4B,EAAE,CAAC;AAE1D,MAAM,cAAc,GAAG;;;YAGX,cAAc,CAAC,IAAI;YACnB,cAAc,CAAC,OAAO;;;4CAGU,cAAc,CAAC,OAAO;UACxD,cAAc,CAAC,IAAI;;;;;;;yCAOY,qCAAmB,CAAC,GAAG;;gDAEhB,qCAAmB,CAAC,KAAK;;gDAEzB,qCAAmB,CAAC,OAAO;;gDAE3B,qCAAmB,CAAC,KAAK;;gDAEzB,qCAAmB,CAAC,KAAK;;gDAEzB,qCAAmB,CAAC,OAAO;;;;;mDAKxB,qCAAmB,CAAC,OAAO;;oBAE1D,qCAAmB,CAAC,GAAG,KAAK,qCAAmB,CAAC,KAAK;;;;;;;2DAOd,qCAAmB,CAAC,OAAO;;;;kDAIpC,qCAAmB,CAAC,GAAG,KAAK,qCAAmB,CAAC,KAAK;;;;;;;;;;;;;;;;;SAiB9F,CAAC;AAEG,QAAA,YAAY,GAAG;;;;IAIxB,cAAc;;;;;;6BAMW,cAAc,CAAC,QAAQ;;;;;YAKxC,cAAc,CAAC,iBAAiB;;;;;;;;;;UAUlC,cAAc,CAAC,oBAAoB;;sCAEP,qCAAmB,CAAC,GAAG,KAAK,qCAAmB,CAAC,KAAK;8DAC7B,cAAc,CAAC,aAAa;;;;;;;;;;;;;;;;;;wEAkBlB,qCAAmB,CAAC,KAAK,iCAAiC,qCAAmB,CAAC,GAAG;;;;;;;;;;;QAWjJ,cAAc,CAAC,KAAK;;;QAGpB,cAAc,CAAC,YAAY;;QAE3B,CAAC","sourcesContent":["import { EstimateInvoiceType } from '../../../types/Enum/EstimateInvoice';\nimport { CommercialDocumentCommonHTML } from './common';\n\nconst commonTemplate = new CommercialDocumentCommonHTML();\n\nconst headOfDocument = `<div class=\"row space-between\">\n <% if (settings && settings.logoAlignment === 'left') { %>\n <div class=\"society-informations\">\n ${commonTemplate.logo}\n ${commonTemplate.company}\n </div>\n <% } else { %>\n <div class=\"society-informations\">${commonTemplate.company}</div>\n ${commonTemplate.logo}\n <% } %>\n </div>\n\n <div class=\"row space-between items-end\" style=\"margin-top: 10px\">\n <div style=\"width: 45%; margin-top: auto;\">\n <span class=\"document-reference\">\n <% if (idEstimateInvoiceType === ${EstimateInvoiceType.BON}) { %>\n <%= languageTemplate.template.orderForm.headers.title %>\n <% } else if (idEstimateInvoiceType === ${EstimateInvoiceType.DEVIS}) { %>\n <%= languageTemplate.template.estimate.headers.title %>\n <% } else if (idEstimateInvoiceType === ${EstimateInvoiceType.FACTURE}) { %>\n <%= languageTemplate.template.invoice.headers.title %>\n <% } else if (idEstimateInvoiceType === ${EstimateInvoiceType.AVOIR}) { %>\n <%= languageTemplate.template.asset.headers.title %>\n <% } else if (idEstimateInvoiceType === ${EstimateInvoiceType.RESTE}) { %>\n <%= languageTemplate.template.remainder.headers.title %>\n <% } else if (idEstimateInvoiceType === ${EstimateInvoiceType.ACOMPTE}) { %>\n <%= languageTemplate.template.deposit.headers.title %>\n <% } %>\n <%= reference %></span><br/>\n <% if(emissionDate) {%><span class=\"document-emission-date\"> <%= languageTemplate.template.common.headers.emissionDate %> : <%= emissionDateFormatted %></span><br/><% } %>\n <% if(dueDate && idEstimateInvoiceType !== ${EstimateInvoiceType.ACOMPTE}) {%>\n <span class=\"document-due-date\">\n <% if ([${EstimateInvoiceType.BON}, ${EstimateInvoiceType.DEVIS}].includes(idEstimateInvoiceType)) {%>\n <%= languageTemplate.template.estimate.headers.dueDate %> :\n <% } else { %>\n <%= languageTemplate.template.invoice.headers.dueDate %> :\n <% } %>\n <%= dueDateFormatted %></span>\n <% } %>\n <% if (expirationDate && idEstimateInvoiceType === ${EstimateInvoiceType.ACOMPTE}) {%>\n <span class=\"document-due-date\"><%= languageTemplate.template.deposit.headers.expirationDate %> : : <%= expirationDateFormatted %></span>\n <% } %>\n <% if(termsOfPayment) { %>\n <br/><p style=\"margin-bottom: 0px;\"><%= [${EstimateInvoiceType.BON}, ${EstimateInvoiceType.DEVIS}].includes(idEstimateInvoiceType) ? languageTemplate.template.estimate.headers.termsOfPayment : languageTemplate.template.invoice.headers.termsOfPayment %> : <%= termsOfPayment %></p>\n <% } %>\n </div>\n <div style=\"width: 40%; margin-top: auto;\">\n <p></p>\n <% if (thirdParty) { %>\n <div class=\"<%= settings && settings.isCoordinatesFrameDisplayed ? 'customer-border' : '' %>\">\n <% if(thirdParty.company) {%><b><%= thirdParty.company %></b><br/><% } %>\n <% if(thirdParty.fullname) {%><%= thirdParty.fullname %><br/><% } %>\n <% if(thirdParty.address) {%><%= thirdParty.address %><br/><% } %>\n <% if(thirdParty.zipCode) {%><%= thirdParty.zipCode + ' ' %><% } %><%= thirdParty.city %> <%= thirdParty.country %><br/>\n <% if(thirdParty.deliveryAddress && thirdParty.deliveryCity && thirdParty.deliveryZipCode) {%>Adresse de livraison : <%= thirdParty.deliveryAddress %> <%= thirdParty.deliveryZipCode %> <%= thirdParty.deliveryCity %> <%= thirdParty.deliveryCountry %><br/><% } %>\n <% if(thirdParty.nSiret) {%>SIRET : <%= thirdParty.nSiret %><br/><% } %>\n <% if(thirdParty.nTva) {%>N° TVA : <%= thirdParty.nTva %><% } %>\n </div>\n <% } %>\n </div>\n </div>`;\n\nexport const bodyTemplate = `<html class=\"pdf-content\">\n\n <body>\n\n ${headOfDocument}\n\n <div class=\"row mt-25\">\n <% if (title) { %><%=languageTemplate.template.common.headers.title %> : <%= title %><% } %>\n </div>\n\n <div class=\"row mt-10\">${commonTemplate.products}</div>\n\n <div class=\"row space-between mt-20\">\n <div style=\"width: 55%;\">\n <% if (disableVat !== true && vats.length) { %>\n ${commonTemplate.vatRecapitulation}\n <% } %>\n <% if (vatMention) { %><div class=\"vat-mention <%= disableVat !== true ? 'mt-20' : ''%>\"><%= vatMention %></div><% } %>\n <% if (comment) { %>\n <p class=\"mt-20\"><%= languageTemplate.template.common.options.comment %> :<br/>\n <%- comment %>\n <% } %>\n </div>\n\n <div>\n ${commonTemplate.amountRecapitulation}\n\n <% if (isStripeAllowed && ![${EstimateInvoiceType.BON}, ${EstimateInvoiceType.DEVIS}].includes(idEstimateInvoiceType)) { %>\n <div style=\"text-align: right; margin-top: 30px;\">${commonTemplate.paymentButton}</div>\n <% } %>\n </div>\n \n </div>\n\n <% if ((settings && (settings.iban || settings.bic || settings.bank)) || paymentType) { %>\n <div class=\"row mt-30 space-between\" style=\"page-break-inside: avoid !important;\">\n <div>\n <% if ((settings && (settings.iban || settings.bic || settings.bank)) || paymentType) { %>\n <% if(paymentType) { %><%= languageTemplate.template.common.options.paymentType %> : <%= paymentType %><br/><% } %>\n <% if(settings.bank) { %><%= languageTemplate.template.common.options.bank %> : <%= settings.bank %><br/><% } %>\n <% if(settings.iban) { %>IBAN : <%= settings.iban %><br/><% } %>\n <% if(settings.bic) { %>BIC : <%= settings.bic %><% } %>\n <% } %>\n </div>\n </div>\n <% } %>\n <% if (settings && settings.bonPour && (idEstimateInvoiceType === ${EstimateInvoiceType.DEVIS} || idEstimateInvoiceType === ${EstimateInvoiceType.BON})) { %>\n <br/><%= languageTemplate.template.common.options.approval %> : <br/><br/><br/><br/>\n <% } %>\n\n <% if (cgv && (settings && settings.invoiceCgv)) { %>\n <br><div style=\"page-break-after:always;\"></div>\n <div id=\"WYSIWYG\"><%- cgv %></div>\n <% } %>\n </body>\n\n <style>\n ${commonTemplate.style}\n </style>\n <style>\n ${commonTemplate.styleWYSIWYG}\n </style>\n</html>`;\n"]}
|
|
1
|
+
{"version":3,"file":"body.js","sourceRoot":"","sources":["../../../../../ts/utils/commercialManagement/templates/body.ts"],"names":[],"mappings":";;;AAAA,yEAA0E;AAC1E,qCAAwD;AAExD,MAAM,cAAc,GAAG,IAAI,qCAA4B,EAAE,CAAC;AAE1D,MAAM,cAAc,GAAG;;;YAGX,cAAc,CAAC,IAAI;YACnB,cAAc,CAAC,OAAO;;;4CAGU,cAAc,CAAC,OAAO;UACxD,cAAc,CAAC,IAAI;;;;;;;yCAOY,qCAAmB,CAAC,GAAG;;gDAEhB,qCAAmB,CAAC,KAAK;;gDAEzB,qCAAmB,CAAC,OAAO;;gDAE3B,qCAAmB,CAAC,KAAK;;gDAEzB,qCAAmB,CAAC,KAAK;;gDAEzB,qCAAmB,CAAC,OAAO;;;;;mDAKxB,qCAAmB,CAAC,OAAO;;oBAE1D,qCAAmB,CAAC,GAAG,KAAK,qCAAmB,CAAC,KAAK;;;;;;;2DAOd,qCAAmB,CAAC,OAAO;;;;kDAIpC,qCAAmB,CAAC,GAAG,KAAK,qCAAmB,CAAC,KAAK;;;;;;;;;;;;;;;;;SAiB9F,CAAC;AAEG,QAAA,YAAY,GAAG;;;;IAIxB,cAAc;;;;;;6BAMW,cAAc,CAAC,QAAQ;;;;;YAKxC,cAAc,CAAC,iBAAiB;;;;;;;;;;UAUlC,cAAc,CAAC,oBAAoB;;sCAEP,qCAAmB,CAAC,GAAG,KAAK,qCAAmB,CAAC,KAAK;8DAC7B,cAAc,CAAC,aAAa;;;;;;;;;;;;;;;;;;wEAkBlB,qCAAmB,CAAC,KAAK,iCAAiC,qCAAmB,CAAC,GAAG;;;;;;;;;;;QAWjJ,cAAc,CAAC,KAAK;;;QAGpB,cAAc,CAAC,YAAY;;QAE3B,CAAC","sourcesContent":["import { EstimateInvoiceType } from '../../../types/Enum/EstimateInvoice';\nimport { CommercialDocumentCommonHTML } from './common';\n\nconst commonTemplate = new CommercialDocumentCommonHTML();\n\nconst headOfDocument = `<div class=\"row space-between\">\n <% if (settings && settings.logoAlignment === 'left') { %>\n <div class=\"society-informations\">\n ${commonTemplate.logo}\n ${commonTemplate.company}\n </div>\n <% } else { %>\n <div class=\"society-informations\">${commonTemplate.company}</div>\n ${commonTemplate.logo}\n <% } %>\n </div>\n\n <div class=\"row space-between items-end\" style=\"margin-top: 10px\">\n <div style=\"width: 45%; margin-top: auto;\">\n <span class=\"document-reference\">\n <% if (idEstimateInvoiceType === ${EstimateInvoiceType.BON}) { %>\n <%= languageTemplate.template.orderForm.headers.title %>\n <% } else if (idEstimateInvoiceType === ${EstimateInvoiceType.DEVIS}) { %>\n <%= languageTemplate.template.estimate.headers.title %>\n <% } else if (idEstimateInvoiceType === ${EstimateInvoiceType.FACTURE}) { %>\n <%= languageTemplate.template.invoice.headers.title %>\n <% } else if (idEstimateInvoiceType === ${EstimateInvoiceType.AVOIR}) { %>\n <%= languageTemplate.template.asset.headers.title %>\n <% } else if (idEstimateInvoiceType === ${EstimateInvoiceType.RESTE}) { %>\n <%= languageTemplate.template.remainder.headers.title %>\n <% } else if (idEstimateInvoiceType === ${EstimateInvoiceType.ACOMPTE}) { %>\n <%= languageTemplate.template.deposit.headers.title %>\n <% } %>\n <%= reference %></span><br/>\n <% if(emissionDate) {%><span class=\"document-emission-date\"> <%= languageTemplate.template.common.headers.emissionDate %> : <%= emissionDateFormatted %></span><br/><% } %>\n <% if(dueDate && idEstimateInvoiceType !== ${EstimateInvoiceType.ACOMPTE}) {%>\n <span class=\"document-due-date\">\n <% if ([${EstimateInvoiceType.BON}, ${EstimateInvoiceType.DEVIS}].includes(idEstimateInvoiceType)) {%>\n <%= languageTemplate.template.estimate.headers.dueDate %> :\n <% } else { %>\n <%= languageTemplate.template.invoice.headers.dueDate %> :\n <% } %>\n <%= dueDateFormatted %></span>\n <% } %>\n <% if (expirationDate && idEstimateInvoiceType === ${EstimateInvoiceType.ACOMPTE}) {%>\n <span class=\"document-due-date\"><%= languageTemplate.template.deposit.headers.expirationDate %> : : <%= expirationDateFormatted %></span>\n <% } %>\n <% if(termsOfPayment) { %>\n <br/><p style=\"margin-bottom: 0px;\"><%= [${EstimateInvoiceType.BON}, ${EstimateInvoiceType.DEVIS}].includes(idEstimateInvoiceType) ? languageTemplate.template.estimate.headers.termsOfPayment : languageTemplate.template.invoice.headers.termsOfPayment %> : <%= termsOfPayment %></p>\n <% } %>\n </div>\n <div style=\"width: 40%; margin-top: auto;\">\n <p></p>\n <% if (thirdParty) { %>\n <div class=\"<%= settings && settings.isCoordinatesFrameDisplayed ? 'customer-border' : '' %>\">\n <% if(thirdParty.company) {%><b><%= thirdParty.company %></b><br/><% } %>\n <% if(thirdParty.fullname) {%><%= thirdParty.fullname %><br/><% } %>\n <% if(thirdParty.address) {%><%= thirdParty.address %><br/><% } %>\n <% if(thirdParty.zipCode) {%><%= thirdParty.zipCode + ' ' %><% } %><%= thirdParty.city %> <%= thirdParty.country %><br/>\n <% if(thirdParty.deliveryAddress && thirdParty.deliveryCity && thirdParty.deliveryZipCode) {%>Adresse de livraison : <%= thirdParty.deliveryAddress %> <%= thirdParty.deliveryZipCode %> <%= thirdParty.deliveryCity %> <%= thirdParty.deliveryCountry %><br/><% } %>\n <% if(thirdParty.nSiret) {%>SIRET : <%= thirdParty.nSiret %><br/><% } %>\n <% if(thirdParty.nTva) {%>N° TVA : <%= thirdParty.nTva %><% } %>\n </div>\n <% } %>\n </div>\n </div>`;\n\nexport const bodyTemplate = `<html class=\"pdf-content\">\n\n <body>\n\n ${headOfDocument}\n\n <div class=\"row mt-25\">\n <% if (title) { %><%=languageTemplate.template.common.headers.title %> : <%= title %><% } %>\n </div>\n\n <div class=\"row mt-10\">${commonTemplate.products}</div>\n\n <div class=\"row space-between mt-20\">\n <div style=\"width: 55%;\">\n <% if (disableVat !== true && vats.length) { %>\n ${commonTemplate.vatRecapitulation}\n <% } %>\n <% if (vatMention && vatMention !== 'TVA: Non concerné') { %><div class=\"vat-mention <%= disableVat !== true ? 'mt-20' : ''%>\"><%= vatMention %></div><% } %>\n <% if (comment) { %>\n <p class=\"mt-20\"><%= languageTemplate.template.common.options.comment %> :<br/>\n <%- comment %>\n <% } %>\n </div>\n\n <div>\n ${commonTemplate.amountRecapitulation}\n\n <% if (isStripeAllowed && ![${EstimateInvoiceType.BON}, ${EstimateInvoiceType.DEVIS}].includes(idEstimateInvoiceType)) { %>\n <div style=\"text-align: right; margin-top: 30px;\">${commonTemplate.paymentButton}</div>\n <% } %>\n </div>\n \n </div>\n\n <% if ((settings && (settings.iban || settings.bic || settings.bank)) || paymentType) { %>\n <div class=\"row mt-30 space-between\" style=\"page-break-inside: avoid !important;\">\n <div>\n <% if ((settings && (settings.iban || settings.bic || settings.bank)) || paymentType) { %>\n <% if(paymentType) { %><%= languageTemplate.template.common.options.paymentType %> : <%= paymentType %><br/><% } %>\n <% if(settings.bank) { %><%= languageTemplate.template.common.options.bank %> : <%= settings.bank %><br/><% } %>\n <% if(settings.iban) { %>IBAN : <%= settings.iban %><br/><% } %>\n <% if(settings.bic) { %>BIC : <%= settings.bic %><% } %>\n <% } %>\n </div>\n </div>\n <% } %>\n <% if (settings && settings.bonPour && (idEstimateInvoiceType === ${EstimateInvoiceType.DEVIS} || idEstimateInvoiceType === ${EstimateInvoiceType.BON})) { %>\n <br/><%= languageTemplate.template.common.options.approval %> : <br/><br/><br/><br/>\n <% } %>\n\n <% if (cgv && (settings && settings.invoiceCgv)) { %>\n <br><div style=\"page-break-after:always;\"></div>\n <div id=\"WYSIWYG\"><%- cgv %></div>\n <% } %>\n </body>\n\n <style>\n ${commonTemplate.style}\n </style>\n <style>\n ${commonTemplate.styleWYSIWYG}\n </style>\n</html>`;\n"]}
|
|
@@ -11,7 +11,7 @@ class CommercialDocumentCommonHTML {
|
|
|
11
11
|
<span id="header-edging" style="position: absolute; top: 0; left: 0; width: 100vw; font-size: 10px !important; height: 15px; background-color: <%= settings && settings.edgingColor ? settings.edgingColor : '#333333' %>; margin-bottom: 20px;"></span>
|
|
12
12
|
<% } %>`;
|
|
13
13
|
this.footer = `<div class="footer" style="font-size: 8px !important; color: #838384; text-align: center; padding: 0 40px; display: block; width: 100%;">
|
|
14
|
-
<% if (freeText) { %><%- freeText %><br/><br/><% } %><% if (accountingCategoryFormatted) {%><%= accountingCategoryFormatted %> | <%}%><% if(marginVats.length > 0) { %><%= languageTemplate.template.common.footer.marginVat %> - <% marginVats.forEach(function(v, index) { %><%= v %> - <% }) %><%= languageTemplate.template.common.footer.legalVatMention %> | <% } %><% if(penalties ||
|
|
14
|
+
<% if (freeText) { %><%- freeText %><br/><br/><% } %><% if (accountingCategoryFormatted) {%><%= accountingCategoryFormatted %> | <%}%><% if(marginVats.length > 0) { %><%= languageTemplate.template.common.footer.marginVat %> - <% marginVats.forEach(function(v, index) { %><%= v %> - <% }) %><%= languageTemplate.template.common.footer.legalVatMention %> | <% } %><% if(penalties || recoveryCost || discount) { %><%= penalties ? languageTemplate.template.common.footer.penalties + ' : ' + penalties : ''%><%= penalties && recoveryCost ? ' | ' : ''%><%= recoveryCost ? languageTemplate.template.common.footer.recoveryCosts + ' : ' + recoveryCost + ' ' : '' %><%= (recoveryCost || penalties) && discount ? ' | ' : '' %><%= discount ? languageTemplate.template.common.footer.discount + ' : ' + discount : '' %><%= shouldPayTaxAfterDebit ? "| " + languageTemplate.template.common.footer.shouldPayTaxAfterDebit : '' %><% if(name || legalForm || capital || siren || rcs) {%><br/><br/><% } %><% } %><%= name %><%= name && (legalForm || capital || siren || rcs) ? ', ' : ''%><%= legalForm %><%= capital ? ' ' + languageTemplate.template.common.footer.capital + ' ' + capitalFormatted + ' €' : '' %><%= siren ? ' ' + languageTemplate.template.common.footer.siren + ' ' + siren : ''%><%= rcs ? '| RCS ' + rcs : ''%><% if (vatCode || nafCode) {%><br/><% } %><%= vatCode ? languageTemplate.template.common.footer.vatCode + ' ' +vatCode : ''%><% if(vatCode && nafCode){%>|<%}%><%= nafCode ? 'APE '+nafCode : '' %>
|
|
15
15
|
<% if (["Clementine", "Pourcentage", "Comptalib"].includes(brandName) && !shouldHideBrandName) { %>
|
|
16
16
|
<div style="display: grid; place-items: center;"><div style="background-color: <%= brandColors.primary50 %>; color: <%= brandColors.primary500 %>; display: flex; gap: 3px; max-width: fit-content; border-radius: 4px; padding: 4px 8px; margin-top: 8px; align-items: center; font-size: 9px; line-height: 140%; font-family: 'circular std', sans serif; font-weight: 450;">
|
|
17
17
|
<%= languageTemplate.template.common.footer.generate %>
|