màj wiki avec retour MES lot-5 AD
This commit is contained in:
@@ -0,0 +1,141 @@
|
||||
---
|
||||
title: "Weights"
|
||||
type: concept
|
||||
sources:
|
||||
- sources/archives/33_Les_poids.md
|
||||
related:
|
||||
- concepts/container.md
|
||||
- concepts/stock.md
|
||||
- concepts/product-item.md
|
||||
- concepts/reception.md
|
||||
- concepts/stations.md
|
||||
- modules/pie.md
|
||||
last_compiled: "2026-04-17"
|
||||
---
|
||||
|
||||
# Weights
|
||||
|
||||
## Overview
|
||||
|
||||
EasyWMS tracks **five distinct weight fields** on every container and **two weight fields** on every stock line. These fields support reception sanity checks, detection of shrinkage or miscounts at the PIE (weighing station), and variable-weight items (e.g., meat, fish, fruit sold by the kilo). Understanding which field is updated by which event — and which one the shipping / reporting logic reads — is critical: the French UI term *"poids théorique"* is ambiguous (it can mean either of two different fields).
|
||||
|
||||
## Container-level weight fields
|
||||
|
||||
Five fields, each with a distinct trigger and formula.
|
||||
|
||||
| WMS field | French label | Definition | Updated when |
|
||||
|---|---|---|---|
|
||||
| **Calculated Weight** | Poids calculé | Theoretical (item) weight − adjustments | On every stock movement (picking, transfer, adjustment) |
|
||||
| **Scale Weight** | Poids balance | Raw gross weight measured at the PIE | **PIE pass only** |
|
||||
| **Theoretical Weight** | Poids théorique (article) | (unit weight × quantity) + container tare weight | At creation and on every adjustment |
|
||||
| **Real Weight** | Poids réel | `max(Calculated Weight, Theoretical Scale Weight)` | Recomputed automatically when its inputs change |
|
||||
| **Theoretical Scale Weight** | Poids théorique (balance) | Scale Weight − adjustments | Set after PIE pass, then updated by adjustments |
|
||||
|
||||
> ⚠️ **Translation trap** — *"Poids théorique"* in French maps to **two different fields** in English:
|
||||
> - **Poids théorique (article)** = `Theoretical Weight` (from the item master)
|
||||
> - **Poids théorique (balance)** = `Theoretical Scale Weight` (from the scale, minus adjustments)
|
||||
>
|
||||
> Reports and customs must specify which one they are reading.
|
||||
|
||||
### Formulas
|
||||
|
||||
- **Theoretical Weight** = *unit weight on item master × quantity + container tare (from EasyS)*
|
||||
- **Scale Weight** = *gross weighed value at the PIE*
|
||||
- **Calculated Weight** = *Theoretical Weight − cumulative adjustments (picking, transfers…)*
|
||||
- **Theoretical Scale Weight** = *Scale Weight − cumulative adjustments*
|
||||
- **Real Weight** = `max(Calculated Weight, Theoretical Scale Weight)`
|
||||
|
||||
## Stock-line weight fields
|
||||
|
||||
On each stock line (`Stock` record):
|
||||
|
||||
| Field | Description |
|
||||
|---|---|
|
||||
| **Poids (kg)** | Real weight of the line |
|
||||
| **Poids théorique (kg)** | Theoretical weight of the line, from the item master |
|
||||
|
||||
Stock-line weights are updated on stock adjustments, weighings, and custom processes **only when the item is configured as variable-weight**. The PIE does **not** update stock-line weights directly — it updates container-level fields only.
|
||||
|
||||
## Behavior at stock creation
|
||||
|
||||
- **Real weight of the stock (line)** starts at `0` — it is only populated by a PIE pass, a `StockAdjust` on a variable-weight item, or a custom.
|
||||
- **Theoretical weight of the stock (line)** is computed immediately from the item master.
|
||||
- **Container tare weight** (pallet type weight in EasyS) is **frozen at container creation** — changing the tare in EasyS later **does not propagate** to existing containers. Only newly created containers pick up the new tare.
|
||||
|
||||
## PIE pass
|
||||
|
||||
When a container passes the PIE:
|
||||
|
||||
1. The scale measures the gross weight (goods + pallet).
|
||||
2. **Scale Weight** ← measured value.
|
||||
3. **Theoretical Scale Weight** ← Scale Weight − existing adjustments.
|
||||
4. **Real Weight** ← `max(Calculated Weight, Theoretical Scale Weight)`.
|
||||
|
||||
> The PIE writes only the container-level fields. Line-level weights are not updated by the PIE directly ; if needed, they are recomputed by the custom that drives the PIE reaction (e.g., proportional distribution).
|
||||
|
||||
## Variable-weight items
|
||||
|
||||
### Enabling variable weight
|
||||
|
||||
The **"Poids variable"** (Variable weight) option lives on the **logistic profile** of the item. When it is on, indicating the stock's weight at creation becomes **mandatory**.
|
||||
|
||||
### "Poids moyen" option (average weight from receipt)
|
||||
|
||||
When both of the following are true, the WMS pre-fills the stock weight at reception from the receipt line:
|
||||
|
||||
- **Poids moyen** is enabled on the logistic profile.
|
||||
- The expected stock-line weight is carried in the ROR's logistic attributes (e.g., `"Weight": 20`).
|
||||
|
||||
### StockAdjust limitation
|
||||
|
||||
`StockAdjust` **cannot modify the weight of a stock line** if the item is not configured as variable-weight on its logistic profile. Use a weighing flow or a custom if non-variable items need weight corrections.
|
||||
|
||||
## Weight check on stock entry
|
||||
|
||||
The workflow **`Stock_CheckWeightToCreateStockInContainer_UI`** runs at stock creation:
|
||||
|
||||
- Compares the entered weight against the item master.
|
||||
- If the item is variable-weight and the tolerance is exceeded, it **raises an RFT alert** (does not reject).
|
||||
|
||||
> Reject-rather-than-alert behaviour at the PIE requires a custom workflow — see *Open questions* below.
|
||||
|
||||
## Worked examples
|
||||
|
||||
### Fixed-weight item — 25 kg pallet, item weighs 250 kg
|
||||
|
||||
| Step | Calculated | Scale | Theoretical (item) | Real | Theoretical Scale |
|
||||
|---|---|---|---|---|---|
|
||||
| Creation | 275 | 0 | 275 | 275 | 0 |
|
||||
| PIE pass (280 kg) | 280 | 280 | 275 | 275 | 280 |
|
||||
|
||||
### Same item, new pallet created after EasyS tare change (25 → 24 kg)
|
||||
|
||||
| Step | Calculated | Scale | Theoretical (item) | Real | Theoretical Scale |
|
||||
|---|---|---|---|---|---|
|
||||
| New pallet | 280 | 280 | 274 | 274 | 280 |
|
||||
|
||||
> Theoretical (item) = 250 (goods) + 24 (new pallet tare). The older pallet keeps 275 — confirming that the container tare is frozen at creation.
|
||||
|
||||
### Variable-weight item — 10 bags, 100 kg declared
|
||||
|
||||
| Step | Calculated | Scale | Theoretical (item) | Real | Theoretical Scale |
|
||||
|---|---|---|---|---|---|
|
||||
| Creation | 124 | 0 | 124 | 124 | 0 |
|
||||
| PIE pass (107 kg) | 107 | 107 | 124 | 124 | 107 |
|
||||
|
||||
> The PIE updates Scale Weight and Calculated Weight at the container level. The stock lines inside the container are **not** auto-recalculated unless a custom redistributes the measured value.
|
||||
|
||||
## Open questions
|
||||
|
||||
| # | Subject | Status |
|
||||
|---|---|---|
|
||||
| 1 | A rejection workflow at PIE (same check as `Stock_CheckWeightToCreateStockInContainer_UI` but blocking rather than alerting) | To confirm |
|
||||
| 2 | The "pesé − tare théorique support (MCH)" formula produces an *estimated net weight* that is not persisted as a field | To investigate |
|
||||
|
||||
## Related
|
||||
|
||||
- [[container]] — all five weight fields are attributes of the container ; see "SSCC and weights" on the container page
|
||||
- [[stock]] — the two stock-line fields, updated for variable-weight items
|
||||
- [[product-item]] — logistic profile carries the variable-weight and "Poids moyen" flags, item master holds unit weight
|
||||
- [[reception]] — receipt line can carry the expected weight used by "Poids moyen" at stock creation
|
||||
- [[stations]] — PIE station type drives scale-weight capture
|
||||
Reference in New Issue
Block a user