Liens vers les stack #62
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Quand on est dans les ordres de vente, ce serait interessant de pouvoir afficher pour un ordre, le ou les stack associé pour avoir l'information du cout de production par exemple.
Analyse : ce qui existe déjà pour relier un ordre à ses lots
Il n'y a pas de lien direct entre un
SellOrderet unStockLot. Une partie du chemin existe déjà, en passant par les ventes :SaleOrderMatcher(Stock/SaleFees.cs) retrouve l'ordre d'une vente du wallet. ESI ne donne pas l'order_iddans les transactions, donc il s'appuie sur des règles : même item, même lieu, vente immédiate, même prix, ordre seul ouvert. Le résultat est enregistré dansSaleTransaction.EsiOrderId(SellOrderSyncService.MatchSalesToOrdersAsync, sur les 90 derniers jours).SaleAllocationServicerattache chaque vente aux lotsForSaledu même item, sur tout le compte, en FIFO (date de mise en vente, puis date d'entrée en stock). L'ordre et le lieu de vente n'entrent pas en compte.Il faut donc distinguer deux parties d'un ordre :
1. Les unités déjà vendues : lien fiable
Ordre → ventes dont
EsiOrderIdest celui de l'ordre →SaleAllocation→ lots. On connaît le coût de chaque unité vendue (UnitCost, origine, projet source) et on peut afficher une marge réalisée : prix de vente − taxe − part des frais de courtage − coût du lot. Une simple requête suffit, sans nouveau champ.2. Les unités encore en ligne : lien probable seulement
Aucun lot n'est rattaché à un ordre avant la vente. On peut afficher les lots
ForSaledu même item, dans l'ordre FIFO où les prochaines ventes les consommeront. Pour un ordre qui reste à vendre, ce sont ses « lots probables ». Ce n'est fiable que s'il n'y a qu'un seul ordre ouvert pour cet item sur le compte. Avec deux ordres du même item (deux lieux, ou deux prix), les lots sont communs et le FIFO décide.Proposition
Étape 1 (simple, sans changer le modèle). Dans
SellOrderModule, un panneau dépliable par ordre :ForSaledu même item, en FIFO, jusqu'au volume restant de l'ordre, marqués « probables ». On y ajoute un coût unitaire moyen pondéré et une marge estimée au prix de l'ordre.Étape 2 (si l'étape 1 ne suffit pas). Un lien explicite et facultatif
StockLot.SellOrderId, renseigné quand on met un lot en vente ou corrigé à la main. Le rattachement des ventes (V3) privilégierait alors les lots de l'ordre trouvé parSaleOrderMatcher, puis reviendrait au FIFO actuel. C'est plus juste avec plusieurs ordres du même item, mais ça modifie V3 : à décider plus tard.Questions