Locations and picking helpers

Az Odoo készletfoglalási logikája minden belső helyszínt ugyanúgy kezel, amint egy eltávolítási stratégia ki van választva: nem teszi lehetővé, hogy egy raktár egy adott átvitelt (vagy értékesítési rendelést) a polcok egy részhalmazára korlátozzon, nincs gyors hierarchikus/típus szerinti szűrője a helyszínek listáján, és a beépített eltávolítási stratégiái (FIFO, LIFO, legközelebbi hely, FEFO) nem rendezhetők át tetszőleges, manuálisan rangsorolt prioritás szerint. Ez az oldal négy kis eYssen modult dokumentál, amelyek ezeket a hiányosságokat pótolják: kettő, amely lehetővé teszi, hogy egy művelettípus, átvitel vagy értékesítési rendelés meghatározott tárolási kategóriákra legyen rögzítve a kiszedéshez, egy, amely keresési panelt ad a helyszínek listájához, és egy, amely egy rangsor alapú eltávolítási prioritás stratégiát ad hozzá, és ezt a szállítólevél-jelentésen is megjeleníti.

Key features

Restricting picking to specific storage categories

Művelettípusok űrlap a Kiszedés engedélyezése tárolási kategóriákból mezővel

Az eyssen_stock_location_pickable modul hozzáad egy Kiszedés engedélyezése tárolási kategóriákból mezőt (technikai neve allow_pick_categories, egy many2many mező a stock.storage.category modellre) a művelettípushoz, valamint egy ugyanilyen mezőt magára az átvitelre is.

  • A Művelettípus űrlapon ez az alapértelmezett értékként működik: bármilyen tárolási kategória hozzáadható, és alapértelmezés szerint üresen marad (nincs korlátozás).

  • Az Átvitel űrlapon a mező a művelettípusból van kiszámítva az átvitel létrehozásakor, de szerkeszthető marad (readonly=False) mindaddig, amíg az átvitel nincs Kész vagy Törölve állapotban, így egy adott átvitel eltérhet a művelettípusa alapértelmezett értékétől.

Ha a mező egy vagy több kategóriát tartalmaz, a foglalás csak azokat a quanteket veszi figyelembe, amelyek olyan helyszínen találhatók, amelynek Tárolási kategóriája a kiválasztott kategóriák egyike, vagy amelynek egyáltalán nincs beállítva tárolási kategóriája — a más tárolási kategóriájú helyszínek ki vannak zárva. Ez a szűrés a stock.quant._get_gather_domain() és a stock.quant._get_quants_by_products_locations() felülírásával valósul meg, és csak akkor aktív, ha az allow_pick_categories kulcs be van állítva a kontextusban.

Fontos

A korlátozás egy tisztán foglalási szűrő — nem ad hozzá „kiszedhető” jelzőt magához a helyszínhez vagy a tárolási kategóriához. Egy helyszín egyszerűen azért jogosult, mert a tárolási kategóriája szerepel az engedélyezett listán (vagy nincs is neki).

Annak biztosítására, hogy a szűrő attól függetlenül érvényesüljön, hogy melyik kódútvonal váltja ki a foglalást — egy kézi Elérhetőség ellenőrzése, egy visszarendelés, egy láncolt készletmozgás, vagy a Műveletek fülön történő kézi mennyiségbevitel —, a stock.move felülírja az _action_assign(), a _get_available_quantity() és a _set_quantity_done_prepare_vals() metódusokat, hogy az átvitel allow_pick_categories értékét beillessze a kontextusba, mielőtt átadná a vezérlést a szabványos logikának. Az érték a visszarendelés létrehozását is túléli: az átvitel copy_data() metódusa felül van írva, hogy az allow_pick_categories értéket átmásolja a visszarendelés-másolatra.

A korlátozás továbbítása az értékesítési rendelésekből

Értékesítési rendelés űrlap a Kiszedés engedélyezése tárolási kategóriákból mezővel

Az eyssen_stock_location_pickable_sale modul kiterjeszti az eyssen_stock_location_pickable modult az értékesítési folyamatra. Hozzáadja ugyanazt a Kiszedés engedélyezése tárolási kategóriákból mezőt az Értékesítési rendeléshez, a szállítási információk között, közvetlenül a Raktár mező mellé elhelyezve, és szerkeszthető, amíg a rendelés Piszkozat állapotban van.

Amikor a rendelést megerősítik, és létrejön egy szállítás, a stock.move._get_new_picking_values() felül van írva, hogy az értékesítési rendelés allow_pick_categories értékét automatikusan átmásolja az új szállításra — az átvitelen semmilyen kézi lépésre nincs szükség.

Gyors helyszínszűrés a keresési panellel

Helyszínek listanézete a nyitott keresési panellel

Az eyssen_stock_location_searchpanel modul örökli a szabványos helyszín-keresési nézetet (stock.view_location_search), és hozzáad egy keresési panelt két szűrőcsoporttal:

  • Helyszín — egy hierarchikus szűrő (location_id), amellyel bejárható a raktár fastruktúrája, és a lista egy szülő helyszínre és annak leszármazottjaira szűkíthető; valamint

  • Típus — egy többválasztós szűrő a helyszín típusa (usage) alapján (Belső, Vevői, Szállítói, Készletveszteség, Gyártás, Tranzit…), az egyes lehetőségek mellett feltüntetett rekordszámmal.

A panel automatikusan megjelenik minden olyan listán, amely a szabványos helyszín-keresési nézetet használja — a telepítés után semmilyen beállításra nincs szükség.

Helyszínek rangsorolása az eltávolítási stratégiához

Helyszín űrlap az Eltávolítási prioritás mezővel

Az eyssen_stock_removal_priority modul egy új, egyedi eltávolítási stratégiát ad hozzá az Odoo beépített FIFO, LIFO, legközelebbi hely és FEFO stratégiái mellé.

  • Egy Eltávolítási prioritás egész szám mező (technikai neve removal_priority, alapértelmezett értéke 1000) kerül hozzáadásra a Helyszínhez, és megjelenik mind a helyszín űrlapon (az Eltávolítási stratégia mező mellett), mind a helyszínek listanézetében.

  • Egy kapcsolódó, tárolt removal_priority mező kerül hozzáadásra a stock.quant modellhez, így minden quant örökli a helyszínének rangsorát.

  • Egy új Prioritás eltávolítási módszer (product.removal rekord, priority metóduskóddal) kerül regisztrálásra, amely így mindenhol kiválasztható, ahol eltávolítási stratégiát lehet választani — akár egy helyszín Eltávolítási stratégia mezőjében, akár egy termékkategória Kényszerített eltávolítási stratégia mezőjében.

Force Removal Strategy field showing the Priority option

Amikor a Prioritás az aktív eltávolítási stratégia egy termékhez/helyszínhez, a stock.quant felülírja a _gather() metódust, így a jogosult quantek először növekvő eltávolítási prioritás szerint, majd a helyszín teljes neve szerint, végül a quant azonosítója szerint kerülnek rendezésre — ugyanaz a döntetlen-eldöntési sorrend, amelyet az Odoo már a legközelebbi hely stratégiánál is használ. Egy alacsonyabb Eltávolítási prioritás szám tehát előbb kerül kiválasztásra, mint egy magasabb, így kifejezetten rangsorolhatók a polcok (például a polc eleji rekeszek 10-es, a tömeges tartalék tárhely pedig 1000-es prioritással), ahelyett hogy pusztán a készlet korára vagy a fizikai távolságra hagyatkozna a rendszer.

Megjegyzés

A tétel nélküli quantek továbbra is mindig a tétellel rendelkező quantek után kerülnek rendezésre, ami megfelel az Odoo szabványos viselkedésének minden eltávolítási stratégia esetén.

A modul emellett módosítja a Szállítólevél jelentést (stock.report_picking) is: a műveletek táblázata, amely normál esetben a forrás- és célhelyszín neve szerint rendezett mozgássorokat listázza, elsődlegesen a forráshelyszín eltávolítási prioritása szerint kerül újrarendezésre, így a kinyomtatott kiszedési lista ugyanazt a polcsorrendet tükrözi, amelyet a foglalási logika is használt.

Szállítólevél PDF, a műveletekkel eltávolítási prioritás szerint rendezve

Konfiguráció

Storage-category picking restriction

  1. Engedélyezze a több helyszínt: a Tárolási kategóriák és a Kiszedés engedélyezése tárolási kategóriákból mezők csak akkor számítanak, ha a helyszínek tárolási kategóriát használnak, ehhez pedig szükséges a Tárolási helyek beállítás (stock.group_stock_multi_locations csoport).

  2. Define storage categories and assign them to locations under Inventory ‣ Configuration ‣ Warehouse Management ‣ Storage Categories, then set each location’s Storage Category field.

  3. Set a default restriction on an operation type under Inventory ‣ Configuration ‣ Operations Types ‣ (open a type) ‣ Allow Pick from Storage Categories.

  4. Opcionálisan felülírhatja a korlátozást átvitelenként az átvitel űrlapján, vagy — ha az eyssen_stock_location_pickable_sale telepítve van — rendelésenként, a szállítási információk között, a rendelés megerősítése előtt.

Location search panel

No configuration is required. Once eyssen_stock_location_searchpanel is installed, the Location and Type facets appear on Inventory ‣ Configuration ‣ Locations.

Removal priority strategy

  1. Rangsorolja a helyszíneket a Készlet ‣ Konfiguráció ‣ Helyszínek menüpont alatt: nyissa meg az egyes helyszíneket, és állítsa be az Eltávolítási prioritás értéküket (az alacsonyabb számok kerülnek előbb kiválasztásra; az alapértelmezett érték minden helyszínnél 1000).

  2. Aktiválja a stratégiát vagy magán a helyszínen (Eltávolítási stratégia mező), vagy — ha egy adott termékcsaládot tartalmazó összes helyszínen érvényesíteni szeretné — a termékkategória Kényszerített eltávolítási stratégia mezőjén, a Készlet ‣ Konfiguráció ‣ Termékkategóriák menüpont alatt. Mindkét esetben válassza a Prioritás lehetőséget.

Használat

Egy szállítási művelettípus kiszedési területre való korlátozásához:

  1. Go to Inventory ‣ Configuration ‣ Operations Types and open the Delivery type used by the relevant warehouse.

  2. A Kiszedés engedélyezése tárolási kategóriákból mezőben adja hozzá azokat a tárolási kategóriákat, amelyekből az ilyen típusú szállítások teljesíthetők (például csak a kiszedésre szánt előtéri polcok, a tömeges tartalék tárolás kizárásával).

  3. Erősítsen meg egy értékesítési rendelést egy olyan termékre, amely egyaránt megtalálható egy engedélyezett és egy nem engedélyezett helyszínen, majd ellenőrizze a keletkező szállítást: az Elérhetőség ellenőrzése csak az engedélyezett tárolási kategóriákból (vagy a tárolási kategória nélküli helyszínekről) foglal quanteket.

  4. Szükség esetén nyissa meg a szállítást, és állítsa be a Kiszedés engedélyezése tárolási kategóriákból mezőt közvetlenül az átvitelen, mielőtt az lezárulna.

A polcok rangsorolásához a prioritás alapú eltávolítási stratégiához:

  1. Állítson be egy Eltávolítási prioritás értéket minden lehetséges helyszínen (alacsonyabb = előbb kerül kiválasztásra).

  2. Set the product’s category Force Removal Strategy to Priority.

  3. Szállítsa ki a terméket, és győződjön meg róla, hogy a foglalás — és a kinyomtatott szállítólevél — elsőként a legalacsonyabb prioritásszámú helyszínről válogat.

Javaslat

A helyszínek keresési panelje gyorsan lehetővé teszi ennek a beállításnak az ellenőrzését: szűrje a Helyszínek listát az érintett raktár alá tartozó Belső helyszínekre, majd hasonlítsa össze egymás mellett az egyes helyszínek Eltávolítási prioritás és Tárolási kategória oszlopait.

Hatókör és modulok

  • eyssen_stock_location_pickable — a Kiszedés engedélyezése tárolási kategóriákból mező a művelettípusokon és az átviteleken, valamint a foglaláskori tárolási kategória szerinti szűrés.

  • eyssen_stock_location_pickable_sale — ugyanez a mező az értékesítési rendeléseken, amely megerősítéskor automatikusan átkerül a szállításra.

  • eyssen_stock_location_searchpanel — a Helyszín és Típus keresési panel a helyszínek listanézetén.

  • eyssen_stock_removal_priority — az Eltávolítási prioritás mező, a Prioritás eltávolítási stratégia, valamint a prioritás szerint rendezett szállítólevél-jelentés.