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¶
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¶
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¶
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ő; valamintTí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¶
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éke1000) 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_prioritymező kerül hozzáadásra astock.quantmodellhez, így minden quant örökli a helyszínének rangsorát.Egy új Prioritás eltávolítási módszer (
product.removalrekord,prioritymetó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.
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.
Konfiguráció¶
Storage-category picking restriction¶
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_locationscsoport).Define storage categories and assign them to locations under , then set each location’s Storage Category field.
Set a default restriction on an operation type under .
Opcionálisan felülírhatja a korlátozást átvitelenként az átvitel űrlapján, vagy — ha az
eyssen_stock_location_pickable_saletelepí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 .
Removal priority strategy¶
Rangsorolja a helyszíneket a 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).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 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:
Go to and open the Delivery type used by the relevant warehouse.
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).
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.
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:
Á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).
Set the product’s category Force Removal Strategy to Priority.
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.