feat : relation Bovine -> BovineType, support du bâtiment direct et feed étendu
- Bovine.breedCode (string) remplacé par bovineType (FK BovineType) - Migration : ajout des races manquantes (Aubrac, Croisé, Blonde d'aquitaine), backfill, drop breed_code - Sync EDNOTIF : auto-création d'un BovineType placeholder pour code inconnu - Bovine.building (FK Building, nullable) en plus de buildingCase - Getter effectiveBuilding (case prime sinon building direct) - Feed XLSX : colonne E optionnelle (code bâtiment), set uniquement si pas de buildingCase - Front : DTO + colonnes en variant inventory/case via composable, race et bâtiment ajustés - Excel export utilise bovineType.label Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -193,12 +193,14 @@ Pas de ligne d'en-tête, 4 colonnes dans cet ordre :
|
||||
| B | Fournisseur | Texte libre, casse ignorée | `TERRENA` |
|
||||
| C | Poids à l'arrivée (kg) | Entier | `368` |
|
||||
| D | Prix au kilo | Décimal | `5.7` |
|
||||
| E | Code bâtiment (optionnel) | `B1`, `B2`, `B3`, `ZT` (casse ignorée) | `B2` |
|
||||
|
||||
### Comportement
|
||||
|
||||
- **Numéro national** : le préfixe `FR` (avec ou sans espace) est retiré s'il est présent. Sinon la valeur est utilisée telle quelle.
|
||||
- **Bovin introuvable** en BDD → ligne ignorée, log warning à la fin avec aperçu.
|
||||
- **Fournisseur introuvable** en BDD → le bovin est mis à jour quand même avec `supplier = null`, log warning.
|
||||
- **Bâtiment** (colonne E) : recherché par `code` (insensible casse). Set uniquement si le bovin n'a pas déjà une `buildingCase` assignée (la case prime sur le bâtiment direct côté affichage). Si code introuvable → log warning, champ non set.
|
||||
- **Cellules `weight` / `price` vides ou non numériques** → champ non modifié.
|
||||
- La commande est **idempotente** : peut être relancée sans effet de bord.
|
||||
|
||||
@@ -237,3 +239,4 @@ rm /tmp/feed_bovin.xlsx # nettoya
|
||||
- Bovins introuvables (avec aperçu des 10 premiers numéros)
|
||||
- Lignes invalides (numéro national vide)
|
||||
- Fournisseurs introuvables (avec liste et compte par nom)
|
||||
- Bâtiments introuvables (avec liste des codes inconnus)
|
||||
|
||||
Reference in New Issue
Block a user