172 lines
6.9 KiB
Markdown
172 lines
6.9 KiB
Markdown
<!-- Generated from docs_source/business by docs/tools/render_business_docs.py. -->
|
|
|
|
# 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:
|
|
|
|
<ul style="margin:0.65rem 0 1rem 1.1rem; padding-left:1rem; list-style-type:disc;">
|
|
<li style="margin:0.38rem 0;">un type d'echantillon: offer, pre-shipment, shipment, arrival, stock, customer ou retained;
|
|
</li>
|
|
<li style="margin:0.38rem 0;">un sens purchase ou sale;
|
|
</li>
|
|
<li style="margin:0.38rem 0;">un cycle de vie: requested, received, sent to lab, under review, approved, rejected, expired, archived;
|
|
</li>
|
|
<li style="margin:0.38rem 0;">une date d'expiration calculee depuis la date de demande/reception et la duree de vie de l'echantillon;
|
|
</li>
|
|
<li style="margin:0.38rem 0;">des donnees de qualite physique et des liens vers les seances de cupping.
|
|
</li>
|
|
</ul>
|
|
|
|
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:
|
|
|
|
<ul style="margin:0.65rem 0 1rem 1.1rem; padding-left:1rem; list-style-type:disc;">
|
|
<li style="margin:0.38rem 0;">les proprietes/criteres de cupping sont parametrables;
|
|
</li>
|
|
<li style="margin:0.38rem 0;">une seance definit une capacite de salle en nombre de tasses et un nombre de tasses par echantillon;
|
|
</li>
|
|
<li style="margin:0.38rem 0;">chaque echantillon inscrit a la seance genere plusieurs tasses avec un code aveugle;
|
|
</li>
|
|
<li style="margin:0.38rem 0;">plusieurs personnes peuvent saisir un resultat par tasse;
|
|
</li>
|
|
<li style="margin:0.38rem 0;">les degustateurs voient uniquement l'origine et le type de cafe, pas le contrat ni le fournisseur;
|
|
</li>
|
|
<li style="margin:0.38rem 0;">l'ordre de preparation propose les arabicas avant les blends/autres cafes et garde les robustas en fin de seance;
|
|
</li>
|
|
<li style="margin:0.38rem 0;">la decision finale reste globale a l'echantillon de seance: approved, rejected ou re-cup.
|
|
</li>
|
|
</ul>
|
|
|
|
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
|
|
|
|
<ul style="margin:0.65rem 0 1rem 1.1rem; padding-left:1rem; list-style-type:disc;">
|
|
<li style="margin:0.38rem 0;">Modeles/champs:
|
|
<ul style="margin:0.65rem 0 1rem 1.35rem; padding-left:1rem; list-style-type:circle;">
|
|
<li style="margin:0.38rem 0;"><code>coffee.sample</code>
|
|
</li>
|
|
<li style="margin:0.38rem 0;"><code>coffee.cupping.criterion</code>
|
|
</li>
|
|
<li style="margin:0.38rem 0;"><code>coffee.cupping.session</code>
|
|
</li>
|
|
<li style="margin:0.38rem 0;"><code>coffee.cupping.session.sample</code>
|
|
</li>
|
|
<li style="margin:0.38rem 0;"><code>coffee.cupping.cup</code>
|
|
</li>
|
|
<li style="margin:0.38rem 0;"><code>coffee.cupping.result</code>
|
|
</li>
|
|
<li style="margin:0.38rem 0;"><code>coffee.cupping.result.line</code>
|
|
</li>
|
|
<li style="margin:0.38rem 0;"><code>purchase_trade.configuration.active_coffee_compatibility</code>
|
|
</li>
|
|
<li style="margin:0.38rem 0;"><code>purchase.line.coffee_samples</code>
|
|
</li>
|
|
<li style="margin:0.38rem 0;"><code>sale.line.coffee_samples</code>
|
|
</li>
|
|
<li style="margin:0.38rem 0;">champs <code>coffee_*</code> sur <code>purchase.line</code> et <code>sale.line</code>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li style="margin:0.38rem 0;">Fichiers:
|
|
<ul style="margin:0.65rem 0 1rem 1.35rem; padding-left:1rem; list-style-type:circle;">
|
|
<li style="margin:0.38rem 0;"><code>modules/purchase_trade/coffee.py</code>
|
|
</li>
|
|
<li style="margin:0.38rem 0;"><code>modules/purchase_trade/coffee.xml</code>
|
|
</li>
|
|
<li style="margin:0.38rem 0;"><code>modules/purchase_trade/view/coffee_sample_*.xml</code>
|
|
</li>
|
|
<li style="margin:0.38rem 0;"><code>modules/purchase_trade/view/coffee_cupping_*.xml</code>
|
|
</li>
|
|
<li style="margin:0.38rem 0;"><code>modules/purchase_trade/view/purchase_line_form.xml</code>
|
|
</li>
|
|
<li style="margin:0.38rem 0;"><code>modules/purchase_trade/view/sale_line_form.xml</code>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li style="margin:0.38rem 0;">Points de vigilance:
|
|
<ul style="margin:0.65rem 0 1rem 1.35rem; padding-left:1rem; list-style-type:circle;">
|
|
<li style="margin:0.38rem 0;">l'expiration est pilotee par les domaines <code>Expired</code> et <code>Expiring soon</code>;
|
|
</li>
|
|
<li style="margin:0.38rem 0;">aucun blocage shipment/validation n'est introduit en phase 1;
|
|
</li>
|
|
<li style="margin:0.38rem 0;">la delegation labo reste une information de suivi, sans workflow labo complet;
|
|
</li>
|
|
<li style="margin:0.38rem 0;">les menus cafe sont inactifs par defaut et synchronises quand la configuration est sauvegardee.
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
|
|
## 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:
|
|
|
|
<ul style="margin:0.65rem 0 1rem 1.1rem; padding-left:1rem; list-style-type:disc;">
|
|
<li style="margin:0.38rem 0;">cycle de vie analyse: draft, sent, received, accepted, rejected, cancelled;
|
|
</li>
|
|
<li style="margin:0.38rem 0;">dates de demande, envoi, echeance et reception;
|
|
</li>
|
|
<li style="margin:0.38rem 0;">reference de rapport labo;
|
|
</li>
|
|
<li style="margin:0.38rem 0;">resultats physiques et organoleptiques: humidite, screen size, nombre de defauts, cup score;
|
|
</li>
|
|
<li style="margin:0.38rem 0;">controle de conformite par rapport aux seuils de la ligne purchase/sale.
|
|
</li>
|
|
</ul>
|
|
|
|
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:
|
|
|
|
<ul style="margin:0.65rem 0 1rem 1.1rem; padding-left:1rem; list-style-type:disc;">
|
|
<li style="margin:0.38rem 0;">les seuils qualite de la ligne cible;
|
|
</li>
|
|
<li style="margin:0.38rem 0;">la derniere analyse labo non annulee;
|
|
</li>
|
|
<li style="margin:0.38rem 0;">les resultats moyens de cupping;
|
|
</li>
|
|
<li style="margin:0.38rem 0;">les decisions de seance de cupping, dont <code>re-cup</code> et <code>rejected</code>.
|
|
</li>
|
|
</ul>
|
|
|
|
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.
|