Imugiii
2f98168182
feat(borne): produit/menu en rupture stock non commandable (RG-T21)
...
CI / secret-scan (push) Successful in 12s
CI / php-lint (push) Successful in 26s
CI / secret-scan (pull_request) Successful in 13s
CI / php-lint (pull_request) Successful in 25s
CI / static-tests (pull_request) Successful in 52s
CI / static-tests (push) Successful in 57s
CI / js-tests (push) Successful in 32s
CI / js-tests (pull_request) Successful in 31s
La rupture calculee (autoUnavailableIds) etait deja derivee mais pas
appliquee au parcours de commande. Desormais :
- CatalogueController expose is_orderable par produit/menu (menu = burger
impose seul), en croisant le catalogue avec autoUnavailableIds en une
requete (pas de N+1). La borne (data.js -> commandable) grise la tuile +
badge "Indisponible" et bloque le clic (page-products.js + CSS).
- Garde SERVEUR a la creation de commande (OrderRepository::resolveLine) :
un produit, ou le burger d'un menu, en rupture est refuse quel que soit
le canal, y compris par acces direct ou repli sans-JS. C'est la couche
qui fait foi ; le grisage borne n'est qu'un echo UX.
Tests : CatalogueControllerTest (is_orderable liste+detail, produits+menus),
OrderRepositoryTest (refus a la commande produit + menu burger), data.test
(commandable). Doubles desambiguises (autoUnavailableIds vs composition).
PHPStan L6 propre.
2026-06-24 09:20:40 +00:00
411b04d548
feat(borne): menu Maxi agrandit la boisson en 50cl + transport du format ( #98 )
CI / secret-scan (push) Successful in 13s
CI / php-lint (push) Successful in 33s
CI / static-tests (push) Successful in 1m5s
CI / js-tests (push) Successful in 35s
2026-06-24 11:04:20 +02:00
545aa19cf1
feat(borne): tailles 30/50cl boissons a la carte (R4) ( #88 )
CI / secret-scan (push) Successful in 18s
CI / php-lint (push) Successful in 33s
CI / static-tests (push) Successful in 1m9s
CI / js-tests (push) Successful in 41s
2026-06-22 14:07:46 +02:00
5cc879c3ea
feat(orders): saisie commande comptoir/drive - fondation produits (mlt 4.1) ( #85 )
CI / secret-scan (push) Successful in 10s
CI / php-lint (push) Successful in 20s
CI / static-tests (push) Successful in 49s
CI / js-tests (push) Successful in 27s
2026-06-22 12:09:11 +02:00
ea1654c21a
feat(menu): accompagnement Maxi en variante Grande automatique (variante en base) ( #84 )
CI / secret-scan (push) Successful in 9s
CI / php-lint (push) Successful in 24s
CI / static-tests (push) Successful in 58s
CI / js-tests (push) Successful in 32s
2026-06-22 11:52:04 +02:00
741cfdb02b
feat(orders): annulation de commande (CANCEL_ORDER) - PIN + audit + restock (mlt 7.1) ( #83 )
CI / secret-scan (push) Successful in 12s
CI / php-lint (push) Successful in 23s
CI / static-tests (push) Successful in 47s
CI / js-tests (push) Successful in 25s
2026-06-22 11:35:55 +02:00
80919f62c1
feat(orders): KDS cuisine + transition paid vers delivered (P3 operationnel) ( #81 )
CI / secret-scan (push) Successful in 8s
CI / php-lint (push) Successful in 21s
CI / static-tests (push) Successful in 43s
CI / js-tests (push) Successful in 33s
2026-06-22 09:28:39 +02:00
cb990404e3
feat(api): suivi public du statut commande GET /api/orders/{number} (P4) ( #77 )
CI / secret-scan (push) Successful in 9s
CI / php-lint (push) Successful in 20s
CI / static-tests (push) Successful in 47s
CI / js-tests (push) Successful in 26s
2026-06-22 08:53:36 +02:00
60ce3460a5
feat(api): P4 chunk 1b - encaissement + decrement stock ( #57 )
CI / secret-scan (push) Successful in 18s
CI / php-lint (push) Successful in 27s
CI / static-tests (push) Successful in 55s
CI / js-tests (push) Successful in 31s
CI / auto-merge (push) Has been skipped
2026-06-18 14:29:22 +02:00
29a191e506
feat(api): P4 chunk 1a - creation de commande + chevalet ( #55 )
CI / secret-scan (push) Successful in 10s
CI / js-tests (push) Successful in 35s
CI / auto-merge (push) Has been skipped
CI / php-lint (push) Successful in 29s
CI / static-tests (push) Successful in 1m5s
2026-06-18 14:09:35 +02:00