Finalisation du panier

Vue d’ensemble

La finalisation du panier est l’étape qui valide la vente, génère les tickets et crée un nouveau panier vide pour la vente suivante.

Conditions de finalisation

Paiement complet

Le panier ne peut être finalisé que si :

  • Le total payé est supérieur ou égal au total TTC
  • Tous les paiements sont validés

Si le paiement est incomplet :

  • Un message d’erreur s’affiche : “Il reste X à régler”
  • Le panier reste ouvert pour ajouter des paiements supplémentaires

Numéro de beeper

Si le panier contient des produits envoyés en cuisine :

  • Le numéro de beeper doit être saisi avant la finalisation
  • Un modal s’affiche automatiquement si le numéro n’est pas renseigné

Processus de finalisation

1. Vérification

Avant de finaliser, le système vérifie :

  • Que le paiement est complet
  • Que le numéro de beeper est renseigné (si requis)
  • Que tous les calculs sont à jour

2. Recalcul final

Le panier est recalculé une dernière fois pour s’assurer que :

  • Tous les prix sont corrects
  • Toutes les taxes sont calculées
  • Tous les totaux sont à jour

3. Enregistrement

Le panier est enregistré dans le système :

  • Sauvegarde dans ElasticSearch
  • Envoi d’un message Kafka pour la finalisation Odoo (asynchrone)
  • Création d’un nouveau panier vide

4. Génération des tickets

Les tickets sont générés :

  • Ticket de caisse : Reçu de la transaction
  • Billets de cinéma : Un par séance achetée
  • Tickets de cuisine : Pour les produits envoyés en cuisine (si applicable)

5. Impression

Les tickets sont imprimés automatiquement :

  • Conversion des tickets HTML en images
  • Envoi à l’imprimante ESC/POS
  • Découpe automatique entre les tickets

6. Finalisation

Une fois l’impression terminée :

  • Le panier est marqué comme finalisé
  • Un nouveau panier vide est créé
  • L’interface est prête pour une nouvelle vente

Modal de finalisation

Pendant la finalisation, un modal s’affiche avec :

  • Phase “Enregistrement” : Indication que le panier est en cours d’enregistrement
  • Phase “Impression” : Indication que les tickets sont en cours d’impression
  • Barre de progression : Visualisation de l’avancement

Erreurs

Si une erreur survient :

  • Un message d’erreur s’affiche dans le modal
  • Les détails de l’erreur sont visibles
  • Le panier reste ouvert pour correction

Cas d’erreur

Erreur d’enregistrement

Si l’enregistrement échoue :

  • Un message d’erreur s’affiche
  • Le panier reste ouvert
  • Le caissier peut réessayer après correction

Erreur d’impression

Si l’impression échoue :

  • Un message d’alerte s’affiche
  • La vente est quand même enregistrée
  • Les tickets peuvent être réimprimés ultérieurement

Erreur de validation

Si la validation échoue (données invalides) :

  • Un message d’erreur détaillé s’affiche
  • Le panier reste ouvert
  • Les erreurs doivent être corrigées avant de réessayer

Nouveau panier

Après chaque finalisation :

  • Un nouveau panier vide est automatiquement créé
  • Le panier précédent est conservé dans l’historique
  • Le caissier peut immédiatement commencer une nouvelle vente

Bonnes pratiques

Avant la finalisation

  • Vérifier que tous les articles sont corrects
  • Vérifier que le paiement est complet
  • S’assurer que le numéro de beeper est renseigné (si requis)
  • Vérifier que l’imprimante est prête

Pendant la finalisation

  • Ne pas interrompre le processus
  • Attendre la fin de l’impression
  • Vérifier que tous les tickets ont été imprimés

Après la finalisation

  • Vérifier que les tickets sont corrects
  • Donner les tickets au client
  • Vérifier que le nouveau panier est vide et prêt