Delivery status and dates¶
Az Odoo alapértelmezett Értékesítés alkalmazása már önmagában is nyomon követi, hogy egy megerősített rendelés Nem szállított, Megkezdve, Részlegesen szállított vagy Teljesen szállított állapotban van-e, kizárólag a hozzá kapcsolt szállítási megbízások állapota alapján. A napi működésben ez nem elég: a raktári és értékesítési csapatoknak azt is tudniuk kell, mennyi ment ki fizikailag egy rendelésből, mikor indult az utolsó szállítmány, és mit kezdjenek egy olyan szállítással, amely sosem fog pontosan megegyezni a rendelt mennyiséggel (ömlesztett vagy folyékony áruk esetén), vagy amelyet teljesen töröltek. Emellett magyar cégeknél a könyvelési szabályok megkövetelik, hogy egy számla könyvelési dátuma és a teljesítési (szállítási) dátuma pontosan megegyezzen, amit a standard készlet-számlázási integráció helyesbítő számláknál csendben megtörhet. Ez az oldal a két eYssen modult dokumentálja, amelyek ezeket a hiányosságokat pótolják.
Delivery status on the sales order¶
Egy megerősített rendelésen az Egyéb infó fül Szállítás csoportja három kiegészítő jelzőt mutat, közvetlenül a szabványos Szállítási státusz mező után:
Szállítás % — a ténylegesen kiszállított mennyiség százalékos aránya a rendelt mennyiséghez képest, a
qty_deliveredés aproduct_uom_qtyértékek alapján számolva, minden olyan rendelési soron, amelynek terméke nem szolgáltatás. Csak akkor jelenik meg, amíg a rendelés megerősített állapotban van.Utolsó szállítás dátuma — a rendeléshez kapcsolt legutóbbi elvégzett, kimenő szállítás befejezési dátuma/időpontja (
picking_ids,state == 'done'éspicking_type_code == 'outgoing'szűrővel). Csak azokat a szállításokat tükrözi, amelyek már elhagyták a raktárt — nem az első szállítást (az a szabványoseffective_datemező, amely továbbra is külön jelenik meg).
Mindkét mező tárolt, és automatikusan újraszámolódik, amikor a rendelési sorok vagy a hozzá tartozó szállítmányok megváltoznak, így közvetlenül használhatók szűrőkben, csoportosításokban és az alább ismertetett jelentés-áttekintőben.
Cancelled deliveries¶
A szabványos Szállítási státusz mező csak a Nem szállított, Megkezdve, Részlegesen szállított és Teljesen szállított állapotokat különbözteti meg — egy teljesen törölt rendelés így is Nem szállított-ként jelenik meg. Ez a modul egy ötödik értéket ad hozzá, a Törölve állapotot: ha egy rendelésnek van legalább egy szállítása, és minden szállítmánya Törölve állapotban van, a rendelés szállítási státusza ehelyett Törölve-ként jelenik meg.
Megjegyzés
A mező beépített súgószövege („Blue: Not Delivered/Started, Orange: Partially Delivered, Green: Fully Delivered”) az Odoo saját szövege, és nincs kibővítve az új állapottal. A modul által hozzáadott lista- és Kanban-nézetekben a Törölve állapot piros (veszély) színnel jelenik meg, hogy vizuálisan elkülönüljön a másik háromtól.
Kézi „Teljesen szállított” felülbírálás¶
Ömlesztett vagy folyékony áruk esetén a kiszállított mennyiség szinte sosem egyezik pontosan a rendelt mennyiséggel, ezért a számított státusz örökre Részlegesen szállított marad, még akkor is, ha a szállítás a gyakorlatban teljesnek tekinthető. A fejlécben lévő Teljesen szállított gomb lehetővé teszi, hogy a felhasználó ezt kézzel felülbírálja egy megerősített rendelésen:
Kattintson a Teljesen szállított gombra a rendelés fejlécében. Ez beállítja a technikai Kényszerített teljes szállítás jelzőt (
force_full_delivery), és azonnal Teljesen szállított-ra számolja újra a szállítási státuszt, a ténylegesen kiszállított mennyiségektől függetlenül. A chatterben egy üzenet rögzíti, hogy a státuszt kézzel kényszerítették.A gomb csak azokon a megerősített rendeléseken érhető el, amelyek jelenlegi státusza még nem Teljesen szállított vagy Törölve, és eltűnik, amint a felülbírálás aktívvá válik.
Ekkor a helyén megjelenik egy Szállítási státusz visszaállítása gomb. Erre kattintva törlődik a felülbírálás, és a státusz ismét a tényleges kiszállított mennyiségek alapján számolódik újra, ami szintén egy chatterüzenetet naplóz.
Fontos
A felülbírálás sosem nyúl a készlethez: egyik gomb sem hoz létre, töröl vagy hagy jóvá szállítmányt, mozgást vagy backordert. Csak azt változtatja meg, amit a Szállítási státusz mező jelez. A Törölve állapot mindig elsőbbséget élvez a felülbírálással szemben — ha a rendelés minden szállítása törölve van, a státusz Törölve-ként jelenik meg még akkor is, ha a Kényszerített teljes szállítás be van állítva.
Szállítási státusz a lista- és keresőnézetekben¶
A Szállítási státusz oszlop alapértelmezésben be van kapcsolva (színes jelvény: zöld a Teljesen szállított, narancssárga a Részlegesen szállított, kék a Nem szállított/Megkezdve, piros a Törölve esetén) mind az listán, mind a Ajánlatok listán. A Szállítás % és az Utolsó szállítás dátuma opcionális (alapértelmezésben rejtett) oszlopként kerül hozzáadásra mindkét listához, az oszlopválasztóból bekapcsolva.
A rendelés keresőpanelje szállítási státuszonként egy-egy szűrőt kap — Nem szállított, Szállítás megkezdve, Részlegesen szállított, Teljesen szállított és Szállítás törölve —, valamint egy Utolsó szállítás dátuma dátumszűrőt és egy Csoportosítás: Szállítási státusz opciót.
Delivery-status dashboard¶
Egy dedikált jelentésmenü, az , rendeléseken átívelő áttekintést nyújt, kizárólag a megerősített rendelésekre (state = 'sale') szűkítve. Listanézete egyesíti a rendelés hivatkozását, az ügyfelet, a rendelés dátumát, a Vállalt dátum, a Várható dátum (expected_date), az Első szállítás (a szabványos effective_date), az Utolsó szállítás (last_delivery_date), a Szállítási státusz jelvényt, a Szállítás % folyamatsávot, a rendelés végösszegét és az értékesítőt.
Ugyanez a művelet Pivot és Grafikon nézetet is kínál: a pivot a Szállítás % értéket és a rendelés végösszegét bontja le szállítási státusz szerint (oszlopok) és rendelési hónap szerint (sorok); a grafikon szállítási státuszonként oszlopdiagramként mutatja a rendelések teljes értékét.
Tényleges ügyfél-átvételi dátum¶
Az értékesítési rendelésen túl ez a modul egy Tényleges ügyfél-átvételi dátum (delivered_date) mezőt is hozzáad magához a szállításhoz (stock.picking). Ez egy technikai, csak olvasható mező, amelyet ez a modul egyetlen nézeten sem jelenít meg — azért létezik, hogy rögzítse azt a pillanatot, amikor a vevő ténylegesen átvette az árut (a futárkövetés jelentése alapján), ami érzékelhetően később is lehet, mint a date_done (amikor a raktár érvényesítette a szállítmányt, és átadta a futárnak).
A mezőt az idempotens _set_delivered() hook tölti ki, amely:
csak azokra a kimenő szállítmányokra vonatkozik, amelyek célhelye vevői helyszín;
csendben figyelmen kívül hagyja az üres/hamis időbélyeget; és
sosem írja felül a meglévő értéket — az első megerősített átvétel a mérvadó, a későbbi, eltérő időbélyeggel érkező hívások hatástalanok.
Megjegyzés
Az eyssen_sale_delivery_status csak a mezőt és ezt a hookot definiálja; a futárkövetési integrációk (pl. GLS, Foxpost, MPL szállítási módok) hívják meg a _set_delivered()-et, amint észlelnek egy tényleges kiszállítási követési eseményt, és más eYssen modulok (például az RMA visszaküldési határidő logikája) olvassák ki a kapott dátumot. A részletekért nézze meg az adott modulok saját dokumentációját.
Magyar számla teljesítési dátumának konzisztenciája¶
Az Odoo alapvető könyvelése minden számlán megőriz egy Teljesítési dátum mezőt (delivery_date). Ha a Készlet alkalmazás telepítve van, a sale_stock a számla minden újraszámolásakor automatikusan szinkronizálja ezt a mezőt a kapcsolódó értékesítési rendelés Tényleges dátum mezőjével (az első szállítás befejezési dátuma). Ettől függetlenül az eyssen_l10n_hu egy magyar NAV-előírást kényszerít ki könyveléskor: magyar cégnél a számla könyvelési Dátum mezőjének és a Teljesítési dátum mezőjének meg kell egyeznie, különben a Könyvelés megtagadja a műveletet a „The Accounting Date is not the same as the Fulfillment Date!” üzenettel. Ennek teljesítése érdekében a helyesbítő számlák és a jóváíró számlák mindkét dátumot közvetlenül az eredeti — az általuk helyesbített vagy sztornózott — számlától öröklik.
A modul által megoldott probléma a számítási sorrenddel kapcsolatos: mivel a sale_stock saját Teljesítési dátum újraszámolása mindig megpróbálja a mezőt az értékesítési rendelés tényleges dátumáról újra beállítani, ez a logika a telepített alkalmazások pontos kombinációjától függően az eyssen_l10n_hu „öröklés az eredeti számlától” logikája után is lefuthat — ezzel csendben ismét eltávolítva a helyesbítő számla teljesítési dátumát az eredeti számla dátumától, és megtörve a könyvelési dátum / teljesítési dátum egyezését Könyvelés időpontjában.
Az eyssen_l10n_hu_sale_stock_delivery_date egy kicsi, csak függőségi célú modul (nem ad hozzá sem nézetet, sem menüt, sem új mezőt), amely mindkét sale_stock és eyssen_l10n_hu modultól függ. A kettős függőség garantálja, hogy az account.move._compute_delivery_date() felülírása a sale_stock sajátja után fusson le, így a helyesbítőszámla-logikának mindig az övé az utolsó szó:
a már Könyvelt tételeket érintetlenül hagyja (egy könyvelt, már hash-elt tételen a
delivery_dateújraszámolása sosem történhet meg);bármely más tételen, ha van Eredeti számla mezője, vagy sztornó (
reversed_entry_id), mind a Teljesítési dátum, mind a Dátum az eredeti számla teljesítési dátumára kényszerítődik, visszavonva minden készlet által vezérelt újraszinkronizálást; ésbiztonsági hálóként, ha a Teljesítési dátum és a Dátum utólag is eltér egymástól, a Dátum a Teljesítési dátum-hoz igazodik (vagy fordítva, ha a Teljesítési dátum üres).
Fontos
Ez a logika szándékosan duplikálva van, sorról sorra, az eyssen_l10n_hu és az eyssen_l10n_hu_sale_stock_delivery_date között — a modulok saját kódkommentjei ezt kifejezetten megemlítik. Ha ez a viselkedés valaha megváltozik, mindkét modult együtt kell frissíteni, különben egy olyan magyar cég, ahol mind a sale_stock, mind az eyssen_l10n_hu telepítve van, de ez a modul hiányzik, pontosan abba a szinkronizálódási hibába futhat bele, amelynek megelőzésére ez a modul íródott.
Konfiguráció¶
Mindkét modul hagyományos Odoo alkalmazás, az menüből telepíthető; egyiknek sincs Beállítások kapcsolója.
A Sale Delivery Status (
eyssen_sale_delivery_status) asale_management, astockés asale_stockmodultól függ. A telepítése önmagában elég a plusz mezők, a lista-/keresőbővítések és a jelentésmenü megjelenéséhez — nincs további beállítási teendő.Az eYssen Sale Stock Delivery Date (
eyssen_l10n_hu_sale_stock_delivery_date) asale_stockés azeyssen_l10n_humodultól függ, és nem települ automatikusan, és más eYssen modul sem igényli. Telepítse kifejezetten minden olyan magyar cégen (ahol azeyssen_l10n_hutelepítve van), amely készlet által vezérelt értékesítési számlázást (sale_stock) is használ — ellenkező esetben az adott adatbázison a helyesbítő számlák kitéve maradnak a fent leírt teljesítésidátum-szinkronizálódási hibának.
Javaslat
A Teljesen szállított és a Szállítási státusz visszaállítása gombokhoz, valamint a rendelés űrlapján lévő szállítási mezőkhöz nem szükséges az értékesítési rendelésekhez való szokásos hozzáférésen túl semmilyen biztonsági csoport — ehhez a funkcióhoz nincs dedikált jogosultság.
Használat¶
Erősítsen meg egy szállítási útvonalú értékesítési rendelést a szokásos módon. Ahogy a szállítmányokat érvényesítik, a szabványos Szállítási státusz, valamint a modul Szállítás % és Utolsó szállítás dátuma mezője automatikusan frissül a rendelés Egyéb infó fülén.
Ha a rendelés minden szállítása törölve lesz, a státusz Törölve-re vált, ahelyett hogy Nem szállított maradna.
Ömlesztett/folyékony áruknál, amelyek sosem érik el pontosan a 100%-ot, kattintson a fejlécben a Teljesen szállított gombra, amint a szállítmány a gyakorlatban teljesnek tekinthető; kattintson később a Szállítási státusz visszaállítása gombra, ha a felülbírálást vissza kell vonni.
Használja a Szűrők és a Csoportosítás: Szállítási státusz opciókat az oldalon, vagy a dedikált áttekintőt, hogy átlássa a szállítások előrehaladását a rendelések között.
Azokon a magyar cégeken, ahol mindkét modul telepítve van, egy számla helyesbítése vagy sztornózása automatikusan összhangban tartja annak Teljesítési dátum és Dátum mezőjét az eredeti számlával — a helyesbítő számlán magán nincs szükség kézi dátumbevitelre.
Hatókör és modulok¶
eyssen_sale_delivery_status— hozzáadja a Szállítás %, az Utolsó szállítás dátuma és a Törölve szállítási státuszt az értékesítési rendelésekhez, a kézi Teljesen szállított felülbírálást, a szállítási státusz szerinti keresőszűrőket és listaoszlopokat, az áttekintőt, valamint a Tényleges ügyfél-átvételi dátum mezőt a szállításokon.eyssen_l10n_hu_sale_stock_delivery_date— összhangban tartja egy magyar helyesbítő/sztornó számla Teljesítési dátum mezőjét (teljesítési dátum) az eredeti számlával, függetlenül az értékesítési rendelés készlet által vezérelt tényleges dátumától, így azeyssen_l10n_huáltal kikényszerített NAV könyvelésidátum/teljesítésidátum-szabály továbbra is érvényben marad Könyvelés időpontjában.