diff --git a/api.py b/api.py index d8a6fb4..fc18158 100644 --- a/api.py +++ b/api.py @@ -1096,331 +1096,331 @@ templates_signature_email = { "nom": "Demande de Signature Électronique", "sujet": "📝 Signature requise - {{TYPE_DOC}} {{NUMERO}}", "corps_html": """ - - - - - - - - - - + +
- - - - - - - - - -
-

- 📝 Signature Électronique Requise -

-
-

- Bonjour {{NOM_SIGNATAIRE}}, -

+ + + + + + + + + + + + -

- Cliquez sur le bouton ci-dessous pour accéder au document et apposer votre signature électronique sécurisée : -

+ + + + - -
+ -

- Nous vous invitons à signer électroniquement le document suivant : -

+ + + + - -
+

+ 📝 Signature Électronique Requise +

+
- - - -
- - - - - - - - - - - - - - - - - -
Type de document{{TYPE_DOC}}
Numéro{{NUMERO}}
Date{{DATE}}
Montant TTC{{MONTANT_TTC}} €
-
+ +
+

+ Bonjour {{NOM_SIGNATAIRE}}, +

+ +

+ Nous vous invitons à signer électroniquement le document suivant : +

+ + + + + + +
+ + + + + + + + + + + + + + + + + +
Type de document{{TYPE_DOC}}
Numéro{{NUMERO}}
Date{{DATE}}
Montant TTC{{MONTANT_TTC}} €
+
+ +

+ Cliquez sur le bouton ci-dessous pour accéder au document et apposer votre signature électronique sécurisée : +

+ + + + + + +
+ + ✍️ Signer le document + +
+ + + + + + +
+

+ ⏰ Important : Ce lien de signature est valable pendant 30 jours. + Nous vous recommandons de signer ce document dès que possible. +

+
+ +

+ 🔒 Signature électronique sécurisée
+ Votre signature est protégée par notre partenaire de confiance Universign, + certifié eIDAS et conforme au RGPD. Votre identité sera vérifiée et le document sera + horodaté de manière infalsifiable. +

+
+

+ Vous avez des questions ? Contactez-nous à {{CONTACT_EMAIL}} +

+

+ Cet email a été envoyé automatiquement par le système Sage 100c Dataven.
+ Si vous avez reçu cet email par erreur, veuillez nous en informer. +

+
- - - -
- - ✍️ Signer le document - -
+
+
+ + + """, + "variables_disponibles": [ + "NOM_SIGNATAIRE", + "TYPE_DOC", + "NUMERO", + "DATE", + "MONTANT_TTC", + "SIGNER_URL", + "CONTACT_EMAIL", + ], + }, + "signature_confirmee": { + "id": "signature_confirmee", + "nom": "Confirmation de Signature", + "sujet": "✅ Document signé - {{TYPE_DOC}} {{NUMERO}}", + "corps_html": """ + + + + + + + + + + + + -

- 🔒 Signature électronique sécurisée
- Votre signature est protégée par notre partenaire de confiance Universign, - certifié eIDAS et conforme au RGPD. Votre identité sera vérifiée et le document sera - horodaté de manière infalsifiable. -

- - - - - - - - -
+ - -
- - - -
-

- ⏰ Important : Ce lien de signature est valable pendant 30 jours. - Nous vous recommandons de signer ce document dès que possible. -

-
+ +
+

+ ✅ Document Signé avec Succès +

+
-

- Vous avez des questions ? Contactez-nous à {{CONTACT_EMAIL}} -

-

- Cet email a été envoyé automatiquement par le système Sage 100c Dataven.
- Si vous avez reçu cet email par erreur, veuillez nous en informer. -

-
- - - - - - """, - "variables_disponibles": [ - "NOM_SIGNATAIRE", - "TYPE_DOC", - "NUMERO", - "DATE", - "MONTANT_TTC", - "SIGNER_URL", - "CONTACT_EMAIL", - ], - }, - "signature_confirmee": { - "id": "signature_confirmee", - "nom": "Confirmation de Signature", - "sujet": "✅ Document signé - {{TYPE_DOC}} {{NUMERO}}", - "corps_html": """ - - - - - - - - - -
- - - - - - - - - - + + -

- Nous confirmons la signature électronique du document suivant : -

+ + + + - -
-

- ✅ Document Signé avec Succès -

-
-

- Bonjour {{NOM_SIGNATAIRE}}, -

+ +
+

+ Bonjour {{NOM_SIGNATAIRE}}, +

+ +

+ Nous confirmons la signature électronique du document suivant : +

+ + + + + + +
+ + + + + + + + + + + + + +
Document{{TYPE_DOC}} {{NUMERO}}
Signé le{{DATE_SIGNATURE}}
ID Transaction{{TRANSACTION_ID}}
+
+ +

+ Le document signé a été automatiquement archivé et est disponible dans votre espace client. + Un certificat de signature électronique conforme eIDAS a été généré. +

+ + + + + +
+

+ 🔐 Signature certifiée : Ce document a été signé avec une signature + électronique qualifiée, ayant la même valeur juridique qu'une signature manuscrite + conformément au règlement eIDAS. +

+
+ +

+ Merci pour votre confiance. Notre équipe reste à votre disposition pour toute question. +

+
+

+ Contact : {{CONTACT_EMAIL}} +

+

+ Sage 100c Dataven - Système de signature électronique sécurisée +

+
- - - -
- - - - - - - - - - - - - -
Document{{TYPE_DOC}} {{NUMERO}}
Signé le{{DATE_SIGNATURE}}
ID Transaction{{TRANSACTION_ID}}
-
+
+ + + + + + """, + "variables_disponibles": [ + "NOM_SIGNATAIRE", + "TYPE_DOC", + "NUMERO", + "DATE_SIGNATURE", + "TRANSACTION_ID", + "CONTACT_EMAIL", + ], + }, + "relance_signature": { + "id": "relance_signature", + "nom": "Relance Signature en Attente", + "sujet": "⏰ Rappel - Signature en attente {{TYPE_DOC}} {{NUMERO}}", + "corps_html": """ + + + + + + + + + + + + -

- Merci pour votre confiance. Notre équipe reste à votre disposition pour toute question. -

- - - - - - - - -
+ -

- Le document signé a été automatiquement archivé et est disponible dans votre espace client. - Un certificat de signature électronique conforme eIDAS a été généré. -

+ + + + -
+

+ ⏰ Signature en Attente +

+
- - - -
-

- 🔐 Signature certifiée : Ce document a été signé avec une signature - électronique qualifiée, ayant la même valeur juridique qu'une signature manuscrite - conformément au règlement eIDAS. -

-
+ +
+

+ Bonjour {{NOM_SIGNATAIRE}}, +

+ +

+ Nous vous avons envoyé il y a {{NB_JOURS}} jours un document à signer électroniquement. + Nous constatons que celui-ci n'a pas encore été signé. +

+ + + + + + +
+

+ Document en attente : {{TYPE_DOC}} {{NUMERO}} +

+

+ ⏳ Le lien de signature expirera dans {{JOURS_RESTANTS}} jours +

+
+ +

+ Pour éviter tout retard dans le traitement de votre dossier, nous vous invitons à signer ce document dès maintenant : +

+ + + + + + +
+ + ✍️ Signer maintenant + +
+ +

+ Si vous rencontrez des difficultés ou avez des questions, n'hésitez pas à nous contacter. +

+
-

- Contact : {{CONTACT_EMAIL}} -

-

- Sage 100c Dataven - Système de signature électronique sécurisée -

-
- - - - - - """, - "variables_disponibles": [ - "NOM_SIGNATAIRE", - "TYPE_DOC", - "NUMERO", - "DATE_SIGNATURE", - "TRANSACTION_ID", - "CONTACT_EMAIL", - ], - }, - "relance_signature": { - "id": "relance_signature", - "nom": "Relance Signature en Attente", - "sujet": "⏰ Rappel - Signature en attente {{TYPE_DOC}} {{NUMERO}}", - "corps_html": """ - - - - - - - - - - - - - - - - - -
- - - - - - - - - - + + -

- Nous vous avons envoyé il y a {{NB_JOURS}} jours un document à signer électroniquement. - Nous constatons que celui-ci n'a pas encore été signé. -

- - -
-

- ⏰ Signature en Attente -

-
-

- Bonjour {{NOM_SIGNATAIRE}}, -

+ +
+

+ Contact : {{CONTACT_EMAIL}} +

+

+ Sage 100c Dataven - Relance automatique +

+
- - - -
-

- Document en attente : {{TYPE_DOC}} {{NUMERO}} -

-

- ⏳ Le lien de signature expirera dans {{JOURS_RESTANTS}} jours -

-
- -

- Pour éviter tout retard dans le traitement de votre dossier, nous vous invitons à signer ce document dès maintenant : -

- - - - - - -
- - ✍️ Signer maintenant - -
- -

- Si vous rencontrez des difficultés ou avez des questions, n'hésitez pas à nous contacter. -

-
-

- Contact : {{CONTACT_EMAIL}} -

-

- Sage 100c Dataven - Relance automatique -

-
- - - - - + + + + + + """, "variables_disponibles": [ "NOM_SIGNATAIRE", @@ -1887,6 +1887,12 @@ async def creer_devis(devis: DevisRequest): devis_data = { "client_id": devis.client_id, "date_devis": devis.date_devis.isoformat() if devis.date_devis else None, + "date_livraison": ( + devis.date_livraison.isoformat() if devis.date_livraison else None + ), + "date_expedition": ( + devis.date_expedition.isoformat() if devis.date_expedition else None + ), "reference": devis.reference, "lignes": [ { @@ -1969,17 +1975,19 @@ async def creer_commande( commande: CommandeCreateRequest, session: AsyncSession = Depends(get_session) ): try: - # Vérifier que le client existe - client = sage_client.lire_client(commande.client_id) - if not client: - raise HTTPException(404, f"Client {commande.client_id} introuvable") - - # Préparer les données pour la gateway commande_data = { "client_id": commande.client_id, "date_commande": ( commande.date_commande.isoformat() if commande.date_commande else None ), + "date_livraison": ( + commande.date_livraison.isoformat() if commande.date_livraison else None + ), + "date_expedition": ( + commande.date_expedition.isoformat() + if commande.date_expedition + else None + ), "reference": commande.reference, "lignes": [ { @@ -2184,12 +2192,6 @@ async def envoyer_devis_email( id: str, request: EmailEnvoiRequest, session: AsyncSession = Depends(get_session) ): try: - # Vérifier que le devis existe - devis = sage_client.lire_devis(id) - if not devis: - raise HTTPException(404, f"Devis {id} introuvable") - - # Créer logs email pour chaque destinataire tous_destinataires = [request.destinataire] + request.cc + request.cci email_logs = [] @@ -3141,17 +3143,17 @@ async def creer_facture( facture: FactureCreateRequest, session: AsyncSession = Depends(get_session) ): try: - # Vérifier que le client existe - client = sage_client.lire_client(facture.client_id) - if not client: - raise HTTPException(404, f"Client {facture.client_id} introuvable") - - # Préparer les données pour la gateway facture_data = { "client_id": facture.client_id, "date_facture": ( facture.date_facture.isoformat() if facture.date_facture else None ), + "date_livraison": ( + facture.date_livraison.isoformat() if facture.date_livraison else None + ), + "date_expedition": ( + facture.date_expedition.isoformat() if facture.date_expedition else None + ), "reference": facture.reference, "lignes": [ { @@ -3759,15 +3761,15 @@ async def creer_avoir( avoir: AvoirCreateRequest, session: AsyncSession = Depends(get_session) ): try: - # Vérifier que le client existe - client = sage_client.lire_client(avoir.client_id) - if not client: - raise HTTPException(404, f"Client {avoir.client_id} introuvable") - - # Préparer les données pour la gateway avoir_data = { "client_id": avoir.client_id, "date_avoir": (avoir.date_avoir.isoformat() if avoir.date_avoir else None), + "date_livraison": ( + facture.date_livraison.isoformat() if facture.date_livraison else None + ), + "date_expedition": ( + facture.date_expedition.isoformat() if facture.date_expedition else None + ), "reference": avoir.reference, "lignes": [ { @@ -3887,12 +3889,6 @@ async def creer_livraison( livraison: LivraisonCreateRequest, session: AsyncSession = Depends(get_session) ): try: - # Vérifier que le client existe - client = sage_client.lire_client(livraison.client_id) - if not client: - raise HTTPException(404, f"Client {livraison.client_id} introuvable") - - # Préparer les données pour la gateway livraison_data = { "client_id": livraison.client_id, "date_livraison": ( @@ -3900,6 +3896,16 @@ async def creer_livraison( if livraison.date_livraison else None ), + "date_livraison_prevue": ( + livraison.date_livraison_prevue.isoformat() + if livraison.date_livraison_prevue + else None + ), + "date_expedition": ( + livraison.date_expedition.isoformat() + if livraison.date_expedition + else None + ), "reference": livraison.reference, "lignes": [ {