Private
Public Access
1
0

Stocks : container dédié ERPBlueprints pour les blueprints #59

Open
opened 2026-11-12 08:09:07 +00:00 by mcmuzzle · 0 comments
Owner

Objectif

Pouvoir ranger les BPC T2 sortis d'une invention (ceux qui ont une valeur, suivis en BlueprintStockLot) dans un container dédié, ERPBlueprints, pour ne plus encombrer l'ERPOutputs avec des blueprints.

Ce container est un rangement en plus, pas une obligation. Le fonctionnement actuel ne change pas : l'application doit continuer à trouver et à utiliser les BPC où qu'ils soient (ERPOutputs, hangar, autre container, lieu de sortie du job…). Un utilisateur qui n'a pas d'ERPBlueprints ne doit voir aucune différence.

Contexte

Aujourd'hui, l'application suit deux rôles de containers, repérés par leur nom exact (ErpContainers.cs) : ERPInputs (matériaux) et ERPOutputs (résultats des jobs). Pour retrouver le BPC produit par une tentative d'invention, InventionProjectService (vers la ligne 361) cherche dans cet ordre :

  1. le premier ERPOutputs du personnage (FirstOrDefault) ;
  2. le lieu de sortie du job ESI ;
  3. tous les blueprints du personnage.

Le BPC inventé finit donc par défaut dans l'ERPOutputs, au milieu des produits finis.

Proposition

Ajouter un troisième nom reconnu, ERPBlueprints (nom exact, casse comprise, comme les deux autres). Il sert de premier endroit où chercher les BPC inventés, sans retirer les replis actuels.

À faire

  • ErpContainers : nouveau rôle Blueprints et constante BlueprintsName = "ERPBlueprints".
  • EsiAssetService.GetErpContainersAsync : renvoyer aussi les containers ERPBlueprints.
  • StockReconciliationService : ne pas faire de rapprochement matériaux sur un ERPBlueprints (pas de StockLot créé pour son contenu).
  • Invention : ajouter la recherche dans les ERPBlueprints du personnage (tous, pas seulement le premier) avant les replis actuels (ERPOutputs, lieu de sortie du job, tous les blueprints). Ces replis restent inchangés.
  • Choix du blueprint d'un projet de fabrication : on peut privilégier ceux d'un ERPBlueprints situé au lieu du projet, mais ceux rangés ailleurs restent proposés.
  • Vue Stocks : afficher les containers ERPBlueprints (BPC, runs restantes, ME/TE, valeur, réservation).
  • Mettre à jour la doc (docs/specs/profits/specifications.adoc §3.2, docs/planning/stocks.md, docs/planning/invention.md) et la description de la tuile « Gestion des stocks » (Home.razor).
  • Tests :
    • BPC inventé rangé dans un ERPBlueprints : il est retrouvé ;
    • non-régression : BPC dans l'ERPOutputs, dans un hangar, ou personnage sans ERPBlueprints : il est retrouvé comme aujourd'hui ;
    • plusieurs ERPBlueprints au même lieu.

Hors périmètre

  • Rendre ERPBlueprints obligatoire.
  • Changer la façon dont sont traités les BPC rangés ailleurs.
## Objectif Pouvoir ranger les **BPC T2 sortis d'une invention** (ceux qui ont une valeur, suivis en `BlueprintStockLot`) dans un container dédié, `ERPBlueprints`, pour ne plus encombrer l'`ERPOutputs` avec des blueprints. **Ce container est un rangement en plus, pas une obligation.** Le fonctionnement actuel ne change pas : l'application doit continuer à trouver et à utiliser les BPC où qu'ils soient (`ERPOutputs`, hangar, autre container, lieu de sortie du job…). Un utilisateur qui n'a pas d'`ERPBlueprints` ne doit voir aucune différence. ## Contexte Aujourd'hui, l'application suit deux rôles de containers, repérés par leur nom exact ([`ErpContainers.cs`](src/Portail/Production/ErpContainers.cs)) : `ERPInputs` (matériaux) et `ERPOutputs` (résultats des jobs). Pour retrouver le BPC produit par une tentative d'invention, `InventionProjectService` (vers la ligne 361) cherche dans cet ordre : 1. le premier `ERPOutputs` du personnage (`FirstOrDefault`) ; 2. le lieu de sortie du job ESI ; 3. tous les blueprints du personnage. Le BPC inventé finit donc par défaut dans l'`ERPOutputs`, au milieu des produits finis. ## Proposition Ajouter un troisième nom reconnu, `ERPBlueprints` (nom exact, casse comprise, comme les deux autres). Il sert de premier endroit où chercher les BPC inventés, sans retirer les replis actuels. ## À faire - [ ] `ErpContainers` : nouveau rôle `Blueprints` et constante `BlueprintsName = "ERPBlueprints"`. - [ ] `EsiAssetService.GetErpContainersAsync` : renvoyer aussi les containers `ERPBlueprints`. - [ ] `StockReconciliationService` : ne pas faire de rapprochement matériaux sur un `ERPBlueprints` (pas de `StockLot` créé pour son contenu). - [ ] Invention : ajouter la recherche dans les `ERPBlueprints` du personnage (tous, pas seulement le premier) **avant** les replis actuels (`ERPOutputs`, lieu de sortie du job, tous les blueprints). Ces replis restent inchangés. - [ ] Choix du blueprint d'un projet de fabrication : on peut privilégier ceux d'un `ERPBlueprints` situé au lieu du projet, mais ceux rangés ailleurs restent proposés. - [ ] Vue Stocks : afficher les containers `ERPBlueprints` (BPC, runs restantes, ME/TE, valeur, réservation). - [ ] Mettre à jour la doc (`docs/specs/profits/specifications.adoc` §3.2, `docs/planning/stocks.md`, `docs/planning/invention.md`) et la description de la tuile « Gestion des stocks » (`Home.razor`). - [ ] Tests : - BPC inventé rangé dans un `ERPBlueprints` : il est retrouvé ; - **non-régression** : BPC dans l'`ERPOutputs`, dans un hangar, ou personnage sans `ERPBlueprints` : il est retrouvé comme aujourd'hui ; - plusieurs `ERPBlueprints` au même lieu. ## Hors périmètre - Rendre `ERPBlueprints` obligatoire. - Changer la façon dont sont traités les BPC rangés ailleurs.
mcmuzzle added the Kind/Feature label 2026-11-12 08:09:07 +00:00
Sign in to join this conversation.