Caisse (PointOfSale) - Fonctionnement optimisé

Workflow panier

Principe commun

sequenceDiagram participant K as Caissière participant U as UI participant H as hwproxy participant A as API participant J as Job K->>U: modification panier U->>U: traitement + recalcul U->>H: affichage U->>A: persistance A->>J: cineges.posbasket.action persist J->>U: notif

Principe spécifique places de cinéma (vente, prévente)

sequenceDiagram participant K as Caissière participant U as UI participant H as hwproxy participant A as API participant J as Job K->>U: ajout place de cinéma activate K U->>A: réservation de place U->>U: traitement + recalcul deactivate K U->>H: affichage U->>A: persistance A->>J: cineges.posbasket.action persist J->>U: notif

Fonctionnement commun

L’ergonomie front ne change presque pas : toutes les opérations paniers ne sont plus bloquantes pour l’ui.

Changements

Les opérations de modification/calcul du panier sont faites dans le navigateur, une modification de panier déclenche uniquement une persistence du panier pos/persist.

Le boolean doFinalize de pos/persist permet de clôturer le panier, et de générer les places de cinéma Ticket.

L’ajout d’une place de cinéma au panier n’est bloquant que lors de l’appel à l’api de réservation de place, et la persistance n’est déclenchée que si le panier a été modifié (= que les places ont été réservées).

Les api de réservation de places posbasket.takeseats et posbasket.freeseats sont synchrones, et renvoient les informations de réservation de la séance (informations qui redescendront sur les autres caisses par les notifs de séances consolitées).