@silexpert/core 2.0.119-tsdown.0 → 2.0.120
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/{index-CfisHC_H.d.mts → index-BvApezAZ.d.mts} +37 -4
- package/dist/index-BvApezAZ.d.mts.map +1 -0
- package/dist/index.d.mts +2 -2
- package/dist/index.mjs +80 -13
- package/dist/index.mjs.map +1 -1
- package/dist/product-BCFrBxXc.mjs +2 -0
- package/dist/product-BCFrBxXc.mjs.map +1 -0
- package/dist/server/index.d.mts +1 -1
- package/dist/server/index.d.mts.map +1 -1
- package/dist/server/index.mjs +3 -3
- package/dist/server/index.mjs.map +1 -1
- package/package.json +1 -1
- package/ts/api/resources/Authenticate.ts +6 -0
- package/ts/api/resources/Follow.ts +9 -0
- package/ts/types/Enum/AIPrompt.ts +74 -7
- package/ts/types/Enum/EInvoicingReasonType.ts +3 -2
- package/ts/types/Enum/Kyc.ts +2 -0
- package/ts/types/Enum/PrestationType.ts +1 -1
- package/ts/types/Form/FormConnector.ts +2 -0
- package/ts/types/Interface/api/SocietyApproval.ts +2 -0
- package/ts/types/Interface/api/acceptance/CreateAcceptance.ts +2 -0
- package/ts/types/Interface/api/accountingTransaction/QueryTransaction.ts +2 -0
- package/ts/types/Interface/api/acd/ExportRefreshFailures.ts +15 -0
- package/ts/types/Interface/api/adjustment/Create.ts +2 -0
- package/ts/types/Interface/api/appointment/Appointment.ts +2 -0
- package/ts/types/Interface/api/authentification/ExchangeExternalAuthenticationLink.ts +9 -5
- package/ts/types/Interface/api/balanceSheet/UpdateBalanceSheet.ts +2 -0
- package/ts/types/Interface/api/bankAccount/Create.ts +2 -0
- package/ts/types/Interface/api/bankAccount/Query.ts +3 -0
- package/ts/types/Interface/api/calendarEvent/createCalendarEventForUsers.ts +2 -0
- package/ts/types/Interface/api/card/UpdateCard.ts +4 -0
- package/ts/types/Interface/api/cashAndExpense/Create.ts +3 -0
- package/ts/types/Interface/api/checklist/Query.ts +2 -0
- package/ts/types/Interface/api/checklist/Update.ts +3 -0
- package/ts/types/Interface/api/collaboraterDetail/CreateCollaboraterDetail.ts +4 -0
- package/ts/types/Interface/api/commercialManagement/Create.ts +5 -0
- package/ts/types/Interface/api/commercialManagement/Query.ts +4 -0
- package/ts/types/Interface/api/companyCreationForm/CreateCompanyCreationForm.ts +14 -0
- package/ts/types/Interface/api/connector/CreateConnector.ts +2 -0
- package/ts/types/Interface/api/connector/QueryConnector.ts +2 -0
- package/ts/types/Interface/api/customerProviderOperation/CreateCustomerProviderOperation.ts +2 -0
- package/ts/types/Interface/api/dashboard/QueryTopProviders.ts +2 -0
- package/ts/types/Interface/api/docoon/Create.ts +5 -1
- package/ts/types/Interface/api/documentRequest/Create.ts +2 -0
- package/ts/types/Interface/api/documentRequest/Query.ts +3 -0
- package/ts/types/Interface/api/documentRequest/Update.ts +2 -0
- package/ts/types/Interface/api/exercice/Create.ts +2 -0
- package/ts/types/Interface/api/exercice/UpdateExercice.ts +2 -0
- package/ts/types/Interface/api/generalLedger/QueryGeneralLedgerAuxiliary.ts +2 -0
- package/ts/types/Interface/api/humanResourceLibrary/CreateHumanResourceLibrary.ts +2 -0
- package/ts/types/Interface/api/humanResourceLibrary/QueryPaginatedHumanResourceLibrary.ts +2 -0
- package/ts/types/Interface/api/immobilization/CreateImmobilization.ts +2 -0
- package/ts/types/Interface/api/informationRequest/Create.ts +2 -0
- package/ts/types/Interface/api/informationRequest/Update.ts +3 -0
- package/ts/types/Interface/api/library/QueryLibrary.ts +4 -0
- package/ts/types/Interface/api/notification/CreateNotification.ts +2 -0
- package/ts/types/Interface/api/notificationSetting/CreateNotificationSetting.ts +2 -0
- package/ts/types/Interface/api/notificationSetting/UpdateNotificationSetting.ts +2 -0
- package/ts/types/Interface/api/partner/CreatePartner.ts +2 -0
- package/ts/types/Interface/api/partner/UpdatePartner.ts +2 -0
- package/ts/types/Interface/api/paymentExpectation/CreatePaymentExpecation.ts +2 -0
- package/ts/types/Interface/api/previsionalForm/CreatePrevisionalForm.ts +4 -0
- package/ts/types/Interface/api/registration/CreateRegistration.ts +3 -0
- package/ts/types/Interface/api/registration/DeclareRegistration.ts +2 -0
- package/ts/types/Interface/api/registration/QueryRegistration.ts +2 -0
- package/ts/types/Interface/api/regulation/Create.ts +2 -0
- package/ts/types/Interface/api/revenue/revenueMovement.ts +3 -0
- package/ts/types/Interface/api/revisionGuide/CreateRevisionGuide.ts +3 -0
- package/ts/types/Interface/api/society/CreateTestSociety.ts +9 -0
- package/ts/types/Interface/api/societyConfigBalanceSheet/QueryGetAllSocietyConfigBalanceSheet.ts +2 -0
- package/ts/types/Interface/api/statutsGeneration/CreateBusinessPartnersAndUsersParams.ts +2 -0
- package/ts/types/Interface/api/survey/QuerySurveys.ts +2 -0
- package/ts/types/Interface/api/tax/CreateTax.ts +4 -0
- package/ts/types/Interface/api/taxDeadline/QueryTaxDeadline.ts +3 -0
- package/ts/types/Interface/api/textMessage/Create.ts +2 -0
- package/ts/types/Interface/api/thirdParty/CreateThirdPartyForm.ts +3 -0
- package/ts/types/Interface/api/thirdParty/UpdateThirdPartyForm.ts +2 -0
- package/ts/types/Interface/api/timeTracking/Create.ts +2 -0
- package/ts/types/Interface/api/user/Query.ts +2 -0
- package/ts/types/Interface/api/user/RegisterProspect.ts +7 -0
- package/ts/types/Interface/api/user/UpdateCoworker.ts +2 -0
- package/ts/types/Interface/api/usersHistory/Create.ts +2 -0
- package/ts/types/Interface/api/usersHistory/Update.ts +2 -0
- package/ts/types/Interface/api/vatDeclaration/QueryVatDeclaration.ts +3 -0
- package/ts/types/Interface/api/visualizedInformation/Query.ts +2 -0
- package/ts/types/Interface/api/visualizedInformation/Update.ts +2 -0
- package/ts/types/Interface/models/ISociety.ts +4 -0
- package/ts/types/index.ts +1 -0
- package/ts/utils/amount.ts +82 -55
- package/ts/utils/commercialManagement/document.ts +1 -0
- package/ts/utils/index.ts +1 -0
- package/ts/utils/societyApproval.ts +2 -2
- package/ts/utils/tests/document.spec.ts +41 -0
- package/ts/utils/transforms/numericEnum.transform.ts +9 -0
- package/dist/index-CfisHC_H.d.mts.map +0 -1
- package/dist/product-CG6avfN0.mjs +0 -2
- package/dist/product-CG6avfN0.mjs.map +0 -1
package/package.json
CHANGED
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
ReadConnectAs,
|
|
8
8
|
ProviderAuthDto,
|
|
9
9
|
ExchangeExternalAuthenticationLink,
|
|
10
|
+
ConnectFromUUID,
|
|
10
11
|
} from '../../types/index.js';
|
|
11
12
|
import { Resource } from '../Resource.js';
|
|
12
13
|
|
|
@@ -50,6 +51,11 @@ export class Authenticate extends Resource {
|
|
|
50
51
|
return this.axios.$put('/authenticate/reset-password', payload);
|
|
51
52
|
}
|
|
52
53
|
|
|
54
|
+
/** @deprecated Use exchangeExternalAuthenticationLink instead */
|
|
55
|
+
async byExternalId(uuid: string, query: ConnectFromUUID): Promise<ReadByExternalId> {
|
|
56
|
+
return this.axios.$get(`/authenticate/external/${uuid}`, { params: query });
|
|
57
|
+
}
|
|
58
|
+
|
|
53
59
|
async exchangeExternalAuthenticationLink(payload: ExchangeExternalAuthenticationLink): Promise<ReadByExternalId> {
|
|
54
60
|
return this.axios.$post(`/authenticate/external/exchange`, payload);
|
|
55
61
|
}
|
|
@@ -10,4 +10,13 @@ export class Follow extends Resource {
|
|
|
10
10
|
create(payload: QueryCreateSocietyFollow): Promise<IFollow> {
|
|
11
11
|
return this.axios.$post('/society-follow', payload);
|
|
12
12
|
}
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* archive a follow entry
|
|
16
|
+
* @param { number } id
|
|
17
|
+
* @returns { Promise<{ success: boolean; follow?: IFollow }> }
|
|
18
|
+
*/
|
|
19
|
+
archive(id: number): Promise<{ success: boolean; follow?: IFollow }> {
|
|
20
|
+
return this.axios.$put(`/society-follow/${id}`);
|
|
21
|
+
}
|
|
13
22
|
}
|
|
@@ -120,15 +120,46 @@ export const AIPrompt: Record<AIPromptKey, AIPromptInfo> = {
|
|
|
120
120
|
Faites particulièrement attention à bien distinguer le montant HT (subAmount), le montant de TVA (vatAmount) et le montant TTC (totalAmount).
|
|
121
121
|
|
|
122
122
|
CONTEXTE (FACTURE DE VENTE) :
|
|
123
|
+
- Pour les montants financiers (totalAmount, subAmount, vatAmount) :
|
|
124
|
+
* Pour le montant total TTC (totalAmount) :
|
|
125
|
+
- Extrayez le MONTANT TOTAL FINAL GLOBAL TTC de la pièce comptable pour l'ensemble du document (toutes pages confondues).
|
|
126
|
+
- Termes équivalents : 'Net à Payer', 'Net à payer TTC', 'Total à régler', 'Montant à payer', 'Total général', 'Net à régler', ou montant sur le coupon détachable ('Montant (Euros)'). Tous ces termes désignent le 'totalAmount' TTC.
|
|
127
|
+
- Pour les avoirs (notes de crédit, remboursements, documents portant la mention 'AVOIR' ou montants avec signe négatif/tiret comme '18,56-', '-18.56', '(18.56)') :
|
|
128
|
+
Extrayez TOUJOURS la valeur absolue positive du montant (ex: 'AVOIR EUR 18,56-' -> 18.56).
|
|
129
|
+
- Acomptes et paiements échelonnés : extrayez le montant total TTC facturé de la pièce, et non le reste à payer après déduction d'un acompte antérieur.
|
|
130
|
+
- Escomptes conditionnels : ne retenez JAMAIS un montant d'escompte pour paiement anticipé (ex: 'Escompte 2% si paiement sous 8 jours').
|
|
131
|
+
- Tableau de ventilation de TVA : si plusieurs taux existent, le montant total (totalAmount) est le 'Net à Payer' global ou la somme des montants TTC de toutes les lignes. Ne prenez JAMAIS le montant TTC d'une seule ligne.
|
|
132
|
+
- Régimes sans TVA (franchise en base art. 293 B du CGI, autoliquidation, exonération, vente intracommunautaire) : si la facture mentionne une absence de TVA, positionnez vatAmount à 0 et subAmount égal à totalAmount.
|
|
133
|
+
- Ne confondez JAMAIS le montant total TTC avec un sous-total partiel d'une page ('SOUS TOTAL ...'), un report ou un acompte.
|
|
134
|
+
* Pour le montant total HT (subAmount) :
|
|
135
|
+
- Extrayez le montant total global Hors Taxes de la facture. Si plusieurs taux existent, c'est la somme de tous les montants HT.
|
|
136
|
+
* Pour le montant total de TVA (vatAmount) :
|
|
137
|
+
- Extrayez le montant total de la taxe TVA. Si plusieurs taux existent, c'est la somme de toutes les TVA. Si exonéré ou non applicable, renvoyez 0.
|
|
138
|
+
* Cohérence arithmétique : Vérifiez toujours que subAmount + vatAmount = totalAmount.
|
|
139
|
+
- Pour le numéro de facture (invoiceNumber) et type de document (isReceipt) :
|
|
140
|
+
* RÈGLE STRICTE POUR LES TICKETS DE CAISSE : Si le document est un ticket de caisse (ou reçu de magasin, caisse enregistreuse, restaurant...) et non une facture officielle : AUCUN numéro de facture ne doit être extrait. Renvoyez TOUJOURS null pour 'invoiceNumber' et positionnez 'isReceipt' à true. Ne considérez JAMAIS un numéro de ticket, de caisse, de terminal, un code-barres ou une référence interne de caisse comme un numéro de facture.
|
|
141
|
+
* Pour les factures officielles : extrayez le numéro officiel de la facture émise (ex: 'D260001058', 'F2026-001') et positionnez 'isReceipt' à false.
|
|
142
|
+
* ATTENTION : Si le document mentionne 'Annule et remplace facture n°...' ou 'Avoir sur facture n°...', retenez TOUJOURS le numéro de la nouvelle facture / avoir actuelle émise et JAMAIS le numéro de la facture précédente annulée ou remplacée.
|
|
143
|
+
* Ne confondez PAS le numéro de facture avec un numéro de commande ('Commande n°...'), de ticket de caisse, de bon de livraison (BL), de devis, ou une référence client.
|
|
144
|
+
* Retirez les préfixes textuels tels que 'FACTURE N°', 'Facture :', 'Invoice #', 'Avoir n°'.
|
|
145
|
+
- Pour la date de la facture (dateValue) :
|
|
146
|
+
* Extrayez impérativement la DATE D'ÉMISSION de la facture (la date à laquelle la facture a été établie, ex: 'Paris le 16 août 2026' -> '2026-08-16', '20.08.2026' -> '2026-08-20', '1er septembre 2026' -> '2026-09-01', ou 'Date de facture : DD/MM/YYYY').
|
|
147
|
+
* ATTENTION : Les dates peuvent être séparées par des tirets, des barres obliques ou des points (ex: '20.08.2026' correspond au 20 août 2026 et doit être converti en '2026-08-20'). Pour les documents en français, l'ordre est Jour/Mois/Année (DD/MM/YYYY).
|
|
148
|
+
* ATTENTION : Ne confondez JAMAIS la date d'émission de la facture avec :
|
|
149
|
+
- Les dates de lignes d'opérations ou de transactions individuelles figurant dans un tableau ou relevé récapitulatif (ex: dates de vente, de télécollecte ou de paiements unitaires comme 07/08/2026).
|
|
150
|
+
- Les dates de début ou fin de période de facturation (ex: 'Période du 01/08 au 15/08').
|
|
151
|
+
- Une date d'échéance, de prélèvement ou de règlement (ex: 'Échéance le...').
|
|
152
|
+
- Une date de livraison, de commande ou d'impression.
|
|
153
|
+
* La date comptable officielle est TOUJOURS la date d'émission de la facture elle-même.
|
|
123
154
|
- L'émetteur / vendeur est notre propre entreprise${options?.societyName ? ` (${options.societyName})` : ''}. Renseignez son nom officiel dans 'merchantName'. Il n'y a PAS besoin de chercher un tiers fournisseur.
|
|
124
155
|
- Le tiers cible à identifier et extraire en priorité est le CLIENT / ACHETEUR (customerName) :
|
|
125
156
|
* Extrayez le nom officiel complet du client destinataire à qui est facturée la vente (nom de l'entreprise cliente ou particulier).
|
|
126
157
|
* Ne retournez null QUE si aucun nom de client n'est identifiable.
|
|
127
158
|
- Pour le SIRET ou SIREN (siretOrSiren) :
|
|
128
|
-
* Extrayez le numéro de SIRET (14 chiffres) ou SIREN (9 chiffres) DU CLIENT / ACHETEUR (destinataire), s'il est mentionné dans le bloc adresse ou mentions du client.
|
|
159
|
+
* Extrayez le numéro de SIRET (14 chiffres) ou SIREN (9 chiffres) DU CLIENT / ACHETEUR (destinataire), s'il est mentionné dans le bloc adresse ou mentions du client, y compris si mentionné dans le RCS (ex: 'RCS VILLE 123456789' -> 123456789).
|
|
129
160
|
* ATTENTION : Ne retournez JAMAIS le SIRET de notre propre entreprise émettrice ici. Si le client n'a pas de SIRET indiqué (ex: particulier ou non mentionné), retournez null.
|
|
130
161
|
- Pour le numéro de TVA intracommunautaire (vatNumber) :
|
|
131
|
-
* Extrayez le numéro de TVA intracommunautaire DU CLIENT / ACHETEUR, s'il figure sur le document. Si absent, retournez null. Ne retournez pas celui du vendeur.
|
|
162
|
+
* Extrayez le numéro de TVA intracommunautaire DU CLIENT / ACHETEUR, s'il figure sur le document (supporte tous les indicatifs européens : FR, IE, DE, ES, IT, BE, NL, etc.). Si absent, retournez null. Ne retournez pas celui du vendeur.
|
|
132
163
|
|
|
133
164
|
Pour la classification comptable (categoryCode & categoryName) :
|
|
134
165
|
- Il s'agit d'une opération de PRODUITS / VENTES :
|
|
@@ -142,22 +173,58 @@ export const AIPrompt: Record<AIPromptKey, AIPromptInfo> = {
|
|
|
142
173
|
}
|
|
143
174
|
|
|
144
175
|
return `
|
|
145
|
-
Vous êtes un expert-comptable spécialisé en extraction et classification de données comptables. Analysez cette facture d'achat (ou reçu, note de frais, avoir fournisseur) reçue${societyContext} et extrayez les informations demandées avec la plus grande précision.
|
|
176
|
+
Vous êtes un expert-comptable spécialisé en extraction et classification de données comptables. Analysez cette facture d'achat (ou reçu, ticket de caisse, note de frais, avoir fournisseur) reçue${societyContext} et extrayez les informations demandées avec la plus grande précision.
|
|
146
177
|
Faites particulièrement attention à bien distinguer le montant HT (subAmount), le montant de TVA (vatAmount) et le montant TTC (totalAmount).
|
|
147
178
|
|
|
148
|
-
CONTEXTE (FACTURE D'ACHAT) :
|
|
149
|
-
-
|
|
179
|
+
CONTEXTE (FACTURE D'ACHAT OU TICKET DE CAISSE) :
|
|
180
|
+
- Pour les montants financiers (totalAmount, subAmount, vatAmount) :
|
|
181
|
+
* Pour le montant total TTC (totalAmount) :
|
|
182
|
+
- Extrayez le MONTANT TOTAL FINAL GLOBAL TTC de la pièce comptable pour l'ensemble du document (toutes pages confondues, ex: 364.83).
|
|
183
|
+
- Termes équivalents : 'Net à Payer', 'Net à payer TTC', 'Total à régler', 'Montant à payer', 'Total général', 'Net à régler', ou montant figurant sur un talon de règlement / coupon détachable ('Montant (Euros)'). Tous ces termes désignent le 'totalAmount' TTC.
|
|
184
|
+
- Pour les avoirs (notes de crédit, remboursements, documents portant la mention 'AVOIR' ou montants avec signe négatif/tiret comme '18,56-', '-18.56', '(18.56)') :
|
|
185
|
+
Extrayez TOUJOURS la valeur absolue positive du montant (ex: 'AVOIR EUR 18,56-' -> 18.56).
|
|
186
|
+
- Acomptes et paiements échelonnés : extrayez le montant total TTC facturé de la pièce, et non le solde restant à payer après déduction d'un acompte antérieur.
|
|
187
|
+
- Escomptes conditionnels : ne retenez JAMAIS un montant d'escompte pour paiement anticipé (ex: 'Escompte 2% si paiement sous 8 jours').
|
|
188
|
+
- Tableau récapitulatif de TVA multi-taux : si la facture comporte un tableau avec une colonne 'Montant TTC' par taux (ex: une ligne à 20% avec 24,55 € et une ligne à 5,5% avec 340,28 €), ne prenez JAMAIS le montant TTC d'une seule ligne : le montant total (totalAmount) est le 'Net à Payer' global ou la somme des montants TTC de toutes les lignes (ex: 364,83 €).
|
|
189
|
+
- Régimes sans TVA (franchise en base art. 293 B du CGI, autoliquidation BTP art. 283 du CGI, exonération, achat intracommunautaire / reverse charge) : si la facture mentionne une absence de TVA, positionnez vatAmount à 0 et subAmount égal à totalAmount.
|
|
190
|
+
- Ne confondez JAMAIS le montant total avec un sous-total partiel d'une page ('SOUS TOTAL ...'), un report ou un acompte.
|
|
191
|
+
* Pour le montant total HT (subAmount) :
|
|
192
|
+
- Extrayez le montant total global Hors Taxes de la facture. Si plusieurs taux existent, c'est la somme de tous les montants HT (ex: 20,46 + 322,54 = 343.00).
|
|
193
|
+
* Pour le montant total de TVA (vatAmount) :
|
|
194
|
+
- Extrayez le montant total de la taxe TVA. Si plusieurs taux existent, c'est la somme de toutes les TVA (ex: 4,09 + 17,74 = 21.83). Si exonéré ou non applicable, renvoyez 0.
|
|
195
|
+
* Cohérence arithmétique : Vérifiez toujours que subAmount + vatAmount = totalAmount.
|
|
196
|
+
- Pour le numéro de facture (invoiceNumber) et type de document (isReceipt) :
|
|
197
|
+
* RÈGLE STRICTE POUR LES TICKETS DE CAISSE / REÇUS DE CAISSE :
|
|
198
|
+
Si le document est un ticket de caisse (ou reçu de supermarché, magasin, restaurant, automate de carburant, parking, péage...) et non une facture officielle avec les mentions légales obligatoires de facturation :
|
|
199
|
+
AUCUN numéro de facture ne doit être extrait. Vous DEVEZ renvoyer OBLIGATOIREMENT null pour 'invoiceNumber', et positionner 'isReceipt' à true.
|
|
200
|
+
Ne considérez JAMAIS un numéro de ticket de caisse, numéro de caisse, numéro d'opération/terminal (ex: 'M01611 C001 O0001 T0065'), code-barres (ex: '202608141043006500101611'), numéro de carte de fidélité ou référence interne de caisse comme un numéro de facture.
|
|
201
|
+
* Pour les factures officielles : extrayez le numéro officiel de la facture émise par le fournisseur (ex: 'D260001058', 'INV-2026-042') et positionnez 'isReceipt' à false.
|
|
202
|
+
ATTENTION : Si le document mentionne 'Annule et remplace facture n°...' ou 'Avoir sur facture n°...', retenez TOUJOURS le numéro de la nouvelle facture / avoir actuel en cours, et JAMAIS le numéro de la facture précédente annulée ou remplacée.
|
|
203
|
+
Ne confondez PAS le numéro de facture avec un numéro de commande ('Commande n°...', PO), de ticket de caisse, de bon de livraison (BL), de devis, une référence de virement ou un IBAN.
|
|
204
|
+
Retirez les préfixes textuels tels que 'FACTURE N°', 'Facture :', 'Invoice #', 'Avoir n°'.
|
|
205
|
+
- Pour la date de la facture ou du ticket (dateValue) :
|
|
206
|
+
* Extrayez impérativement la DATE D'ÉMISSION de la facture ou la date d'achat du ticket (la date à laquelle la pièce a été établie, ex: 'Paris le 16 août 2026' -> '2026-08-16', '20.08.2026' -> '2026-08-20', '1er septembre 2026' -> '2026-09-01', ou '14/08/2026' -> '2026-08-14').
|
|
207
|
+
* ATTENTION : Les dates peuvent être séparées par des tirets, des barres obliques ou des points (ex: '20.08.2026' correspond au 20 août 2026 et doit être converti en '2026-08-20'). Pour les documents en français, l'ordre est Jour/Mois/Année (DD/MM/YYYY).
|
|
208
|
+
* ATTENTION : Ne confondez JAMAIS la date d'émission de la facture avec :
|
|
209
|
+
- Les dates de lignes d'opérations ou de transactions individuelles figurant dans un tableau ou relevé récapitulatif (ex: dates de vente, de télécollecte ou de paiements unitaires comme 07/08/2026).
|
|
210
|
+
- Les dates de début ou fin de période de facturation (ex: 'Période du 01/08 au 15/08').
|
|
211
|
+
- Une date d'échéance, de prélèvement ou de règlement (ex: 'Échéance le...').
|
|
212
|
+
- Une date de livraison, de commande ou d'impression.
|
|
213
|
+
* La date comptable officielle est TOUJOURS la date d'émission de la facture elle-même ou la date d'achat du ticket.
|
|
214
|
+
- Le client destinataire (customerName) est notre propre entreprise${options?.societyName ? ` (${options.societyName})` : ''} ou le client livré/facturé (ex: 'DEKKER TIM') : donnez le nom officiel de l'acheteur tel qu'indiqué sur la facture.
|
|
150
215
|
- Le tiers cible à identifier et extraire en priorité est le FOURNISSEUR / ÉMETTEUR (merchantName) :
|
|
151
216
|
* Extrayez le nom officiel complet de l'entité juridique qui vend ou facture (le vendeur, prestataire ou fournisseur).
|
|
217
|
+
* Si un document comporte à la fois une enseigne commerciale (ex: 'E.Leclerc DRIVE', 'Carrefour') et une entité juridique exploitante (ex: 'SAS CHAUMONDIS') avec RCS/SIRET/TVA : l'entité juridique émettrice est le fournisseur (merchantName), et son SIRET/TVA doivent être extraits dans 'siretOrSiren' et 'vatNumber'. Ne considérez JAMAIS l'entité émettrice comme étant le client destinataire !
|
|
218
|
+
* Marketplaces : si la facture mentionne une vente sur une place de marché (ex: 'Vendu par TechStore SARL, expédié par Amazon'), le fournisseur réel est le vendeur tiers ('TechStore SARL').
|
|
152
219
|
* ATTENTION : Ne confondez PAS le nom du fournisseur avec :
|
|
153
220
|
- Des logos de constructeurs ou marques partenaires distribuées (ex: 'Canon', 'HP Partner', 'Dell Partner', 'Apple', 'Konica Minolta').
|
|
154
221
|
- Des intitulés de services ou de sections (ex: 'Service Maintenance', 'Service Client', 'Support Technique', 'Facture').
|
|
155
222
|
* Le fournisseur réel est l'entreprise prestataire/vendeuse mentionnée dans les mentions légales (en pied de page ou en-tête), avec son capital social, RCS, SIRET/SIREN, TVA intracommunautaire, ou identifiable par son domaine email / site web officiel.
|
|
156
223
|
* Ne retournez null QUE si aucun nom de fournisseur ou d'émetteur n'est présent sur le document.
|
|
157
224
|
- Pour le SIRET ou SIREN (siretOrSiren) :
|
|
158
|
-
* Extrayez le numéro de SIRET (14 chiffres) ou SIREN (9 chiffres) DU FOURNISSEUR / ÉMETTEUR.
|
|
225
|
+
* Extrayez le numéro de SIRET (14 chiffres) ou SIREN (9 chiffres) DU FOURNISSEUR / ÉMETTEUR, y compris si mentionné dans le RCS (ex: 'RCS CRETEIL 316807015' -> 316807015).
|
|
159
226
|
- Pour le numéro de TVA intracommunautaire (vatNumber) :
|
|
160
|
-
* Extrayez le numéro de TVA intracommunautaire DU FOURNISSEUR / ÉMETTEUR (
|
|
227
|
+
* Extrayez le numéro de TVA intracommunautaire DU FOURNISSEUR / ÉMETTEUR (supporte tous les indicatifs européens : FR, IE, DE, ES, IT, BE, NL, etc.).
|
|
161
228
|
|
|
162
229
|
Pour la classification comptable (categoryCode & categoryName) :
|
|
163
230
|
- Il s'agit d'une opération de CHARGES / ACHATS :
|
|
@@ -391,8 +391,9 @@ export const einvoicingReasonList: EInvocingReasonListType = {
|
|
|
391
391
|
REJ_UNI: {
|
|
392
392
|
id: EInvoicingReasonType.REJ_UNI,
|
|
393
393
|
reasonCode: EInvoicingReasonTypeCode.REJ_UNI,
|
|
394
|
-
label:
|
|
395
|
-
description:
|
|
394
|
+
label: "Rejet sur contrôle d'unicité",
|
|
395
|
+
description:
|
|
396
|
+
"Le contrôle d'unicité de la facture a échoué. La date d'émission peut être dans le futur ou une facture portant la même référence peut déjà être connue de la plateforme agréée. Vérifiez la date d'émission et la numérotation de votre facture.",
|
|
396
397
|
acceptedStatus: [EInvoicingStatusCode.REJECTED],
|
|
397
398
|
},
|
|
398
399
|
REJ_COH: {
|
package/ts/types/Enum/Kyc.ts
CHANGED
|
@@ -5,4 +5,6 @@ export enum MandateStatus {
|
|
|
5
5
|
REJECTED_ATTACHED_MANDATE_LEGAL_ENTITY = 'REJECTED_ATTACHED_MANDATE_LEGAL_ENTITY',
|
|
6
6
|
REJECTED_STEP = 'REJECTED_STEP',
|
|
7
7
|
REJECTED_DUPLICATE = 'REJECTED_DUPLICATE',
|
|
8
|
+
REJECTED_DIRECTORY_LINE = 'REJECTED_DIRECTORY_LINE',
|
|
9
|
+
SUSPENDED_OTHER_LINE_PROCESS = 'SUSPENDED_OTHER_LINE_PROCESS',
|
|
8
10
|
}
|
|
@@ -2054,7 +2054,7 @@ export const PrestationDetail: PrestationDetailEnum = {
|
|
|
2054
2054
|
minimumPrice: null,
|
|
2055
2055
|
price: 0,
|
|
2056
2056
|
isCatalog: false,
|
|
2057
|
-
isPlannable:
|
|
2057
|
+
isPlannable: false,
|
|
2058
2058
|
hidden: true,
|
|
2059
2059
|
isComplementary: false,
|
|
2060
2060
|
signaturePosition: null,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { IsString, IsOptional, IsNumber, IsDate, IsEnum } from 'class-validator';
|
|
2
2
|
import { ConnectorType } from '../Enum/ConnectorType.js';
|
|
3
3
|
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
|
4
|
+
import { ToNumericEnum } from '../../utils/transforms/numericEnum.transform.js';
|
|
4
5
|
|
|
5
6
|
export class FormConnector {
|
|
6
7
|
@ApiPropertyOptional()
|
|
@@ -49,6 +50,7 @@ export class FormConnector {
|
|
|
49
50
|
date?: Date;
|
|
50
51
|
|
|
51
52
|
@ApiProperty()
|
|
53
|
+
@ToNumericEnum()
|
|
52
54
|
@IsEnum(ConnectorType)
|
|
53
55
|
idTypeConnector: ConnectorType;
|
|
54
56
|
|
|
@@ -3,6 +3,7 @@ import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
|
|
3
3
|
import { RegulatedConventionType, SocietyApprovalDocumentType } from '../../Enum/SocietyApproval.js';
|
|
4
4
|
import { ISocietyApproval } from '../models/ISocietyApproval.js';
|
|
5
5
|
import { ToBoolean } from '../../../utils/transforms/boolean.transform.js';
|
|
6
|
+
import { ToNumericEnum } from '../../../utils/transforms/numericEnum.transform.js';
|
|
6
7
|
|
|
7
8
|
export class SocietyApprovalJsonDatas {
|
|
8
9
|
@ApiPropertyOptional()
|
|
@@ -69,6 +70,7 @@ export class CreateDocument {
|
|
|
69
70
|
|
|
70
71
|
export class ResetDocument {
|
|
71
72
|
@ApiProperty()
|
|
73
|
+
@ToNumericEnum()
|
|
72
74
|
@IsEnum(SocietyApprovalDocumentType)
|
|
73
75
|
idDocumentType: SocietyApprovalDocumentType;
|
|
74
76
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { IsEnum, IsString } from 'class-validator';
|
|
2
2
|
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
|
3
3
|
import { AcceptanceType } from '../../../Enum/Acceptance.js';
|
|
4
|
+
import { ToNumericEnum } from '../../../../utils/transforms/numericEnum.transform.js';
|
|
4
5
|
|
|
5
6
|
export class CreateCustomerAcceptance {
|
|
6
7
|
@ApiProperty()
|
|
@@ -8,6 +9,7 @@ export class CreateCustomerAcceptance {
|
|
|
8
9
|
token: string;
|
|
9
10
|
|
|
10
11
|
@ApiProperty()
|
|
12
|
+
@ToNumericEnum()
|
|
11
13
|
@IsEnum(AcceptanceType)
|
|
12
14
|
state: AcceptanceType;
|
|
13
15
|
|
|
@@ -3,6 +3,7 @@ import { TypeCustomerProviderOperation } from '../../../Enum/TypeCustomerProvide
|
|
|
3
3
|
import { AccountingJournal } from '../../../Enum/AccountingJournal.js';
|
|
4
4
|
import { IsBoolean, IsDateString, IsInt, IsOptional } from 'class-validator';
|
|
5
5
|
import { ToBoolean } from '../../../../utils/transforms/boolean.transform.js';
|
|
6
|
+
import { ToNumericEnum } from '../../../../utils/transforms/numericEnum.transform.js';
|
|
6
7
|
|
|
7
8
|
export class QueryTransaction {
|
|
8
9
|
id: number;
|
|
@@ -67,6 +68,7 @@ export class QueryTransaction {
|
|
|
67
68
|
|
|
68
69
|
export class QueryGetAllTransactions {
|
|
69
70
|
@ApiPropertyOptional()
|
|
71
|
+
@ToNumericEnum()
|
|
70
72
|
typeOperation?: TypeCustomerProviderOperation;
|
|
71
73
|
|
|
72
74
|
@ApiPropertyOptional()
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ApiPropertyOptional } from '@nestjs/swagger';
|
|
2
|
+
import { ArrayUnique, IsArray, IsInt, IsOptional, IsPositive } from 'class-validator';
|
|
3
|
+
|
|
4
|
+
export class ExportAcdRefreshFailures {
|
|
5
|
+
@ApiPropertyOptional({
|
|
6
|
+
type: [Number],
|
|
7
|
+
description: 'Connecteurs ACD à tester. Sans valeur, tous les connecteurs ACD sont testés.',
|
|
8
|
+
})
|
|
9
|
+
@IsOptional()
|
|
10
|
+
@IsArray()
|
|
11
|
+
@ArrayUnique()
|
|
12
|
+
@IsInt({ each: true })
|
|
13
|
+
@IsPositive({ each: true })
|
|
14
|
+
idConnectors?: number[];
|
|
15
|
+
}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { IsNumber, IsOptional } from 'class-validator';
|
|
2
2
|
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
|
3
3
|
import { AdjustmentTypeId } from '../../../Enum/AdjustmentType.js';
|
|
4
|
+
import { ToNumericEnum } from '../../../../utils/transforms/numericEnum.transform.js';
|
|
4
5
|
|
|
5
6
|
export class UpdateOrCreateAdjustment {
|
|
6
7
|
@ApiProperty()
|
|
8
|
+
@ToNumericEnum()
|
|
7
9
|
@IsNumber()
|
|
8
10
|
idAdjustmentType: AdjustmentTypeId;
|
|
9
11
|
|
|
@@ -2,6 +2,7 @@ import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
|
|
2
2
|
import { IsDate, IsInt, IsOptional, IsString, MaxLength } from 'class-validator';
|
|
3
3
|
import type { TimeSlots } from '../workingSchedule/QueryDailyHour.js';
|
|
4
4
|
import { TimeSlot } from '../../../Enum/TimeSlot.js';
|
|
5
|
+
import { ToNumericEnum } from '../../../../utils/transforms/numericEnum.transform.js';
|
|
5
6
|
|
|
6
7
|
export interface AppointmentSession {
|
|
7
8
|
token: string;
|
|
@@ -15,6 +16,7 @@ export class CreateAppointmentLink {
|
|
|
15
16
|
idSociety: number;
|
|
16
17
|
|
|
17
18
|
@ApiPropertyOptional({ enum: TimeSlot })
|
|
19
|
+
@ToNumericEnum()
|
|
18
20
|
@IsOptional()
|
|
19
21
|
@IsInt()
|
|
20
22
|
idType?: TimeSlot;
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
|
2
|
-
import { IsOptional, IsString,
|
|
2
|
+
import { IsOptional, IsString, Matches } from 'class-validator';
|
|
3
|
+
|
|
4
|
+
// Legacy society externalId (UUID) is temporarily accepted until internal apps are migrated to link secrets.
|
|
5
|
+
const EXTERNAL_AUTHENTICATION_TOKEN_PATTERN =
|
|
6
|
+
/^(?:[A-Za-z0-9_-]{43}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$/i;
|
|
3
7
|
|
|
4
8
|
export class ExchangeExternalAuthenticationLink {
|
|
5
9
|
@ApiProperty({
|
|
6
|
-
description:
|
|
7
|
-
|
|
10
|
+
description:
|
|
11
|
+
'Secret base64url du lien de connexion (43 caractères) ou, temporairement, externalId de la société (UUID, déprécié)',
|
|
12
|
+
minLength: 36,
|
|
8
13
|
maxLength: 43,
|
|
9
14
|
})
|
|
10
15
|
@IsString()
|
|
11
|
-
@
|
|
12
|
-
@Matches(/^[A-Za-z0-9_-]{43}$/)
|
|
16
|
+
@Matches(EXTERNAL_AUTHENTICATION_TOKEN_PATTERN)
|
|
13
17
|
token: string;
|
|
14
18
|
|
|
15
19
|
@ApiPropertyOptional()
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { IsDate, IsNumber, IsOptional, IsString } from 'class-validator';
|
|
2
2
|
import { ApiPropertyOptional } from '@nestjs/swagger';
|
|
3
3
|
import { BalanceSheetState } from '../../../Enum/BalanceSheet.js';
|
|
4
|
+
import { ToNumericEnum } from '../../../../utils/transforms/numericEnum.transform.js';
|
|
4
5
|
|
|
5
6
|
export class UpdateBalanceSheet {
|
|
6
7
|
@ApiPropertyOptional()
|
|
@@ -39,6 +40,7 @@ export class UpdateBalanceSheet {
|
|
|
39
40
|
idFile?: number;
|
|
40
41
|
|
|
41
42
|
@ApiPropertyOptional()
|
|
43
|
+
@ToNumericEnum()
|
|
42
44
|
@IsNumber()
|
|
43
45
|
@IsOptional()
|
|
44
46
|
state?: BalanceSheetState;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { IsInt, IsString, IsDateString, IsOptional } from 'class-validator';
|
|
2
2
|
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
|
3
3
|
import { BankAccountType } from '../../../Enum/BankAccountType.js';
|
|
4
|
+
import { ToNumericEnum } from '../../../../utils/transforms/numericEnum.transform.js';
|
|
4
5
|
|
|
5
6
|
export class CreateBankAccount {
|
|
6
7
|
@ApiProperty()
|
|
8
|
+
@ToNumericEnum()
|
|
7
9
|
@IsInt()
|
|
8
10
|
idBankAccountType: BankAccountType;
|
|
9
11
|
|
|
@@ -2,6 +2,7 @@ import { IsBoolean, IsNumber, IsOptional, IsString, IsInt, IsEnum, IsDateString
|
|
|
2
2
|
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
|
3
3
|
import { PartnerTransactionType } from '../../../Enum/PartnerTransactionType.js';
|
|
4
4
|
import { ToBoolean } from '../../../../utils/transforms/boolean.transform.js';
|
|
5
|
+
import { ToNumericEnum } from '../../../../utils/transforms/numericEnum.transform.js';
|
|
5
6
|
import { Nature } from '../../../Enum/Nature.js';
|
|
6
7
|
import { BankAccountType } from '../../../Enum/BankAccountType.js';
|
|
7
8
|
|
|
@@ -47,6 +48,7 @@ export class QueryTransactionsForComparisonPaginated {
|
|
|
47
48
|
descending?: boolean;
|
|
48
49
|
|
|
49
50
|
@ApiPropertyOptional()
|
|
51
|
+
@ToNumericEnum()
|
|
50
52
|
@IsOptional()
|
|
51
53
|
filterByType?: Nature;
|
|
52
54
|
|
|
@@ -80,6 +82,7 @@ export class QueryBankAccount {
|
|
|
80
82
|
idBankAccountType?: number;
|
|
81
83
|
|
|
82
84
|
@ApiPropertyOptional()
|
|
85
|
+
@ToNumericEnum()
|
|
83
86
|
@IsOptional()
|
|
84
87
|
@IsInt()
|
|
85
88
|
@IsEnum(PartnerTransactionType)
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { IsBoolean, IsEnum, IsOptional } from 'class-validator';
|
|
2
2
|
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
|
3
3
|
import { ToBoolean } from '../../../../utils/transforms/boolean.transform.js';
|
|
4
|
+
import { ToNumericEnum } from '../../../../utils/transforms/numericEnum.transform.js';
|
|
4
5
|
import { TimeSlot } from '../../../Enum/TimeSlot.js';
|
|
5
6
|
|
|
6
7
|
export class CreateCalendarEventForUsers {
|
|
@@ -72,6 +73,7 @@ export class CreateCalendarEventForUsers {
|
|
|
72
73
|
hasToConfirmRdvOnboardingToCustomer: boolean;
|
|
73
74
|
|
|
74
75
|
@ApiPropertyOptional()
|
|
76
|
+
@ToNumericEnum()
|
|
75
77
|
@IsOptional()
|
|
76
78
|
@IsEnum(TimeSlot)
|
|
77
79
|
idTimeSlot?: TimeSlot;
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import { IsEnum, IsInt, IsOptional, IsString } from 'class-validator';
|
|
2
2
|
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
|
3
3
|
import { CardState, CardType, TransactionRangeFilter } from '../../../Enum/Card.js';
|
|
4
|
+
import { ToNumericEnum } from '../../../../utils/transforms/numericEnum.transform.js';
|
|
4
5
|
|
|
5
6
|
export class AssignCard {
|
|
6
7
|
@ApiProperty()
|
|
8
|
+
@ToNumericEnum()
|
|
7
9
|
@IsEnum(CardType)
|
|
8
10
|
type: CardType;
|
|
9
11
|
|
|
10
12
|
@ApiPropertyOptional()
|
|
13
|
+
@ToNumericEnum()
|
|
11
14
|
@IsOptional()
|
|
12
15
|
@IsEnum(TransactionRangeFilter)
|
|
13
16
|
transactionRangeFilter?: TransactionRangeFilter;
|
|
@@ -15,6 +18,7 @@ export class AssignCard {
|
|
|
15
18
|
|
|
16
19
|
export class UpdateCardV2 {
|
|
17
20
|
@ApiPropertyOptional()
|
|
21
|
+
@ToNumericEnum()
|
|
18
22
|
@IsOptional()
|
|
19
23
|
@IsEnum(CardState)
|
|
20
24
|
state?: CardState;
|
|
@@ -5,6 +5,7 @@ import { FormEntry } from '../accountingEntry/AnnotateAccountingTransaction.js';
|
|
|
5
5
|
import { type TFile } from '../file/TFile.js';
|
|
6
6
|
import { AccountingJournal } from '../../../Enum/AccountingJournal.js';
|
|
7
7
|
import { ToBoolean } from '../../../../utils/transforms/boolean.transform.js';
|
|
8
|
+
import { ToNumericEnum } from '../../../../utils/transforms/numericEnum.transform.js';
|
|
8
9
|
|
|
9
10
|
export class CreateCashDesk {
|
|
10
11
|
@ApiProperty()
|
|
@@ -19,6 +20,7 @@ export class CreateCashAndExpenseTransaction {
|
|
|
19
20
|
dateValue: string;
|
|
20
21
|
|
|
21
22
|
@ApiProperty()
|
|
23
|
+
@ToNumericEnum()
|
|
22
24
|
idAccountingJournal: AccountingJournal;
|
|
23
25
|
|
|
24
26
|
@ApiProperty()
|
|
@@ -29,6 +31,7 @@ export class CreateCashAndExpenseTransaction {
|
|
|
29
31
|
idSocietyPartner?: number;
|
|
30
32
|
|
|
31
33
|
@ApiPropertyOptional()
|
|
34
|
+
@ToNumericEnum()
|
|
32
35
|
@IsOptional()
|
|
33
36
|
cashDeskTransactionType?: CashDeskTransactionType;
|
|
34
37
|
|
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
} from 'class-validator';
|
|
13
13
|
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
|
14
14
|
import { ToBoolean } from '../../../../utils/transforms/boolean.transform.js';
|
|
15
|
+
import { ToNumericEnum } from '../../../../utils/transforms/numericEnum.transform.js';
|
|
15
16
|
import { ChecklistTypeEnum } from '../../../Enum/ChecklistType.js';
|
|
16
17
|
import { IChecklistDetail } from '../../models/IChecklistDetail.js';
|
|
17
18
|
import { IChecklistType } from '../../models/IChecklistType.js';
|
|
@@ -150,6 +151,7 @@ export class QueryChecklistGetStats {
|
|
|
150
151
|
|
|
151
152
|
export class QueryGetAllQuestions {
|
|
152
153
|
@ApiPropertyOptional()
|
|
154
|
+
@ToNumericEnum()
|
|
153
155
|
@IsOptional()
|
|
154
156
|
@IsEnum(ChecklistTypeEnum)
|
|
155
157
|
type?: ChecklistTypeEnum;
|
|
@@ -3,6 +3,7 @@ import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
|
|
3
3
|
import { ChecklistDetailValue, ChecklistTypeEnum } from '../../../Enum/ChecklistType.js';
|
|
4
4
|
import { IChecklist } from '../../models/IChecklist.js';
|
|
5
5
|
import { ToBoolean } from '../../../../utils/transforms/boolean.transform.js';
|
|
6
|
+
import { ToNumericEnum } from '../../../../utils/transforms/numericEnum.transform.js';
|
|
6
7
|
|
|
7
8
|
export class UpdateAnswer {
|
|
8
9
|
@ApiProperty()
|
|
@@ -10,6 +11,7 @@ export class UpdateAnswer {
|
|
|
10
11
|
name: string;
|
|
11
12
|
|
|
12
13
|
@ApiProperty()
|
|
14
|
+
@ToNumericEnum()
|
|
13
15
|
@IsEnum(ChecklistDetailValue)
|
|
14
16
|
value: ChecklistDetailValue;
|
|
15
17
|
}
|
|
@@ -42,6 +44,7 @@ export class UpdateChecklist implements Partial<IChecklist> {
|
|
|
42
44
|
isConfirmed?: boolean;
|
|
43
45
|
|
|
44
46
|
@ApiPropertyOptional()
|
|
47
|
+
@ToNumericEnum()
|
|
45
48
|
@IsOptional()
|
|
46
49
|
@IsEnum(ChecklistTypeEnum)
|
|
47
50
|
type?: ChecklistTypeEnum;
|
|
@@ -4,6 +4,7 @@ import { ICollaboraterDetail } from '../../models/ICollaboraterDetail.js';
|
|
|
4
4
|
import { MaritalStatus } from '../../../Enum/MaritalStatus.js';
|
|
5
5
|
import { CountryId, NationalityId } from '../../../Enum/Country.js';
|
|
6
6
|
import { ToBoolean } from '../../../../utils/transforms/boolean.transform.js';
|
|
7
|
+
import { ToNumericEnum } from '../../../../utils/transforms/numericEnum.transform.js';
|
|
7
8
|
import { EnglishLevel } from '../../../Enum/EnglishLevel.js';
|
|
8
9
|
|
|
9
10
|
export class CreateCollaboraterDetail implements Omit<ICollaboraterDetail, 'id'> {
|
|
@@ -12,14 +13,17 @@ export class CreateCollaboraterDetail implements Omit<ICollaboraterDetail, 'id'>
|
|
|
12
13
|
idUser: number;
|
|
13
14
|
|
|
14
15
|
@ApiProperty()
|
|
16
|
+
@ToNumericEnum()
|
|
15
17
|
@IsEnum(MaritalStatus)
|
|
16
18
|
idMaritalStatus: MaritalStatus;
|
|
17
19
|
|
|
18
20
|
@ApiProperty()
|
|
21
|
+
@ToNumericEnum()
|
|
19
22
|
@IsEnum(NationalityId)
|
|
20
23
|
idNationality: NationalityId;
|
|
21
24
|
|
|
22
25
|
@ApiProperty()
|
|
26
|
+
@ToNumericEnum()
|
|
23
27
|
@IsEnum(CountryId)
|
|
24
28
|
idCountryOfBirth: CountryId;
|
|
25
29
|
|
|
@@ -28,6 +28,7 @@ import { ISocietyGescom } from '../../models/ISocietyGescom.js';
|
|
|
28
28
|
import { IThirdParty } from '../../models/IThirdParty.js';
|
|
29
29
|
import { IEstimateInvoice } from '../../models/IEstimateInvoice.js';
|
|
30
30
|
import { ToBoolean } from '../../../../utils/transforms/boolean.transform.js';
|
|
31
|
+
import { ToNumericEnum } from '../../../../utils/transforms/numericEnum.transform.js';
|
|
31
32
|
|
|
32
33
|
export type IProductInvoiceToCreate = IProductInvoice & { save?: boolean };
|
|
33
34
|
|
|
@@ -220,6 +221,7 @@ export class CreateCommercialSetting {
|
|
|
220
221
|
areColumnsSeparationHidden?: boolean;
|
|
221
222
|
|
|
222
223
|
@ApiPropertyOptional()
|
|
224
|
+
@ToNumericEnum()
|
|
223
225
|
@IsOptional()
|
|
224
226
|
accountingCategory?: AccountingCategoryId;
|
|
225
227
|
|
|
@@ -504,9 +506,11 @@ export class CommercialDocumentInputs {
|
|
|
504
506
|
isDraft: boolean;
|
|
505
507
|
|
|
506
508
|
@ApiProperty()
|
|
509
|
+
@ToNumericEnum()
|
|
507
510
|
idEstimateInvoiceType: EstimateInvoiceType;
|
|
508
511
|
|
|
509
512
|
@ApiProperty()
|
|
513
|
+
@ToNumericEnum()
|
|
510
514
|
accountingCategory: AccountingCategoryId;
|
|
511
515
|
|
|
512
516
|
@ApiProperty()
|
|
@@ -735,6 +739,7 @@ export class CreateSaleDocumentTemplate {
|
|
|
735
739
|
template: CreateInvoiceDocument | CreatePreSaleDocument;
|
|
736
740
|
|
|
737
741
|
@ApiProperty()
|
|
742
|
+
@ToNumericEnum()
|
|
738
743
|
@IsEnum(EstimateInvoiceType)
|
|
739
744
|
idEstimateInvoiceType: EstimateInvoiceType;
|
|
740
745
|
|
|
@@ -2,6 +2,7 @@ import { IsArray, IsBoolean, IsDateString, IsInt, IsNumber, IsOptional, IsString
|
|
|
2
2
|
import { EInvoicingStatusCode, Order } from '../../../index.js';
|
|
3
3
|
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
|
4
4
|
import { ToBoolean } from '../../../../utils/transforms/boolean.transform.js';
|
|
5
|
+
import { ToNumericEnum } from '../../../../utils/transforms/numericEnum.transform.js';
|
|
5
6
|
import { DiscountType, EstimateStatus, InvoiceStatus } from '../../../Enum/CommercialManagement.js';
|
|
6
7
|
import { EstimateInvoiceType } from '../../../Enum/EstimateInvoice.js';
|
|
7
8
|
import { QueryPaginate } from '../BasePaginate.js';
|
|
@@ -67,6 +68,7 @@ export interface ParamPaginatedInvoices {
|
|
|
67
68
|
|
|
68
69
|
export class QueryGetDefaultPayload {
|
|
69
70
|
@ApiProperty()
|
|
71
|
+
@ToNumericEnum()
|
|
70
72
|
@IsNumber()
|
|
71
73
|
idEstimateInvoiceType: EstimateInvoiceType;
|
|
72
74
|
|
|
@@ -77,6 +79,7 @@ export class QueryGetDefaultPayload {
|
|
|
77
79
|
|
|
78
80
|
export class QueryNextReference {
|
|
79
81
|
@ApiProperty()
|
|
82
|
+
@ToNumericEnum()
|
|
80
83
|
idEstimateInvoiceType: EstimateInvoiceType;
|
|
81
84
|
|
|
82
85
|
@ApiPropertyOptional()
|
|
@@ -93,6 +96,7 @@ export interface Discount {
|
|
|
93
96
|
|
|
94
97
|
export class QueryPreviewDocument {
|
|
95
98
|
@ApiProperty()
|
|
99
|
+
@ToNumericEnum()
|
|
96
100
|
idEstimateInvoiceType: EstimateInvoiceType;
|
|
97
101
|
}
|
|
98
102
|
|