# Trading cafe - echantillons et qualite Page miroir: [coffee.en.md](coffee.en.md) ## BR-PT-COF-001 - Phase 1 echantillons cafe Statut: active Source: decision projet du 2026-06-29 ### Regle consultant Le trading cafe doit pouvoir piloter les echantillons rattaches aux lignes d'achat et de vente. Chaque echantillon porte: - un type d'echantillon: offer, pre-shipment, shipment, arrival, stock, customer ou retained; - un sens purchase ou sale; - un cycle de vie: requested, received, sent to lab, under review, approved, rejected, expired, archived; - une date d'expiration calculee depuis la date de demande/reception et la duree de vie de l'echantillon; - des donnees de qualite physique et des liens vers les seances de cupping. La compatibilite cafe est inactive par defaut et doit etre activee dans la configuration `purchase_trade.configuration` avec le champ `Active coffee compatibility`. Tant que l'option est inactive, les menus cafe et les pages qualite cafe des lignes ne doivent pas etre visibles. Les resultats de cupping sont saisis dans des seances: - les proprietes/criteres de cupping sont parametrables; - une seance definit une capacite de salle en nombre de tasses et un nombre de tasses par echantillon; - chaque echantillon inscrit a la seance genere plusieurs tasses avec un code aveugle; - plusieurs personnes peuvent saisir un resultat par tasse; - les degustateurs voient uniquement l'origine et le type de cafe, pas le contrat ni le fournisseur; - l'ordre de preparation propose les arabicas avant les blends/autres cafes et garde les robustas en fin de seance; - la decision finale reste globale a l'echantillon de seance: approved, rejected ou re-cup. Les lignes `purchase.line` et `sale.line` portent les specifications qualite cibles du cafe: origine, process, variete, crop year, screen size, humidite maximum, nombre de defauts maximum et score cup minimum. ### Notes developpeur - Modeles/champs: - `coffee.sample` - `coffee.cupping.criterion` - `coffee.cupping.session` - `coffee.cupping.session.sample` - `coffee.cupping.cup` - `coffee.cupping.result` - `coffee.cupping.result.line` - `purchase_trade.configuration.active_coffee_compatibility` - `purchase.line.coffee_samples` - `sale.line.coffee_samples` - champs `coffee_*` sur `purchase.line` et `sale.line` - Fichiers: - `modules/purchase_trade/coffee.py` - `modules/purchase_trade/coffee.xml` - `modules/purchase_trade/view/coffee_sample_*.xml` - `modules/purchase_trade/view/coffee_cupping_*.xml` - `modules/purchase_trade/view/purchase_line_form.xml` - `modules/purchase_trade/view/sale_line_form.xml` - Points de vigilance: - l'expiration est pilotee par les domaines `Expired` et `Expiring soon`; - aucun blocage shipment/validation n'est introduit en phase 1; - la delegation labo reste une information de suivi, sans workflow labo complet; - les menus cafe sont inactifs par defaut et synchronises quand la configuration est sauvegardee. ## BR-PT-COF-002 - Phase 2 delegation labo Statut: active Source: decision projet du 2026-06-29 ### Regle consultant Un echantillon cafe peut etre delegue a un laboratoire. La delegation cree et pilote des analyses labo rattachees a l'echantillon: - cycle de vie analyse: draft, sent, received, accepted, rejected, cancelled; - dates de demande, envoi, echeance et reception; - reference de rapport labo; - resultats physiques et organoleptiques: humidite, screen size, nombre de defauts, cup score; - controle de conformite par rapport aux seuils de la ligne purchase/sale. Le bouton `Send to lab` de l'echantillon cree une demande labo active si un labo est renseigne et s'il n'existe pas deja une analyse ouverte. ## BR-PT-COF-003 - Phase 3 decision qualite consolidee Statut: active Source: decision projet du 2026-06-29 ### Regle consultant La decision qualite d'un echantillon est consolidee depuis: - les seuils qualite de la ligne cible; - la derniere analyse labo non annulee; - les resultats moyens de cupping; - les decisions de seance de cupping, dont `re-cup` et `rejected`. L'echantillon expose un statut qualite (`pending`, `pass`, `warning`, `fail`) et une decision recommandee (`approve`, `re-cup`, `reject`). Le bouton `Evaluate quality` applique la recommandation: approbation, rejet ou retour en revue si l'echantillon doit etre re-deguste. Ces fonctions restent sous `Active coffee compatibility` et n'ajoutent pas de blocage transverse sur les flux non cafe.