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

Az értékesítési rendelés űrlapja a Szállítási státusz, a Szállítás % és az Utolsó szállítás dátuma mezőkkel

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 a product_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' és picking_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ányos effective_date mező, 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

Megerősített rendelés fejléce a "Teljesen szállított" felülbírálás gombbal

Ö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:

  1. 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.

  2. 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.

  3. 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.

A rendelés fejléce a felülbírálás után, a Szállítási státusz visszaállítása gombbal

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

Rendelések listanézete színkódolt Szállítási státusz jelvényekkel és opcionális oszlopokkal

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 Értékesítés ‣ Rendelések 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 keresőpanel Szűrők menüje az öt szállítási státusz szűrővel és a Csoportosítás opcióval

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

Szállítási státusz jelentés listanézete

Egy dedikált jelentésmenü, az Értékesítés ‣ Jelentések ‣ Szállítási státusz, 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.

Szállítási státusz jelentés pivot nézete

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

Magyar vevői számla, amelyen a Teljesítési dátum mező összhangban van a Dátum mezővel

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; és

  • biztonsá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 Alkalmazások menüből telepíthető; egyiknek sincs Beállítások kapcsolója.

  • A Sale Delivery Status (eyssen_sale_delivery_status) a sale_management, a stock és a sale_stock modultó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) a sale_stock és az eyssen_l10n_hu modultó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 az eyssen_l10n_hu telepí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

  1. 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.

  2. 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.

  3. Ö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.

  4. Használja a Szűrők és a Csoportosítás: Szállítási státusz opciókat az Értékesítés ‣ Rendelések oldalon, vagy a dedikált Értékesítés ‣ Jelentések ‣ Szállítási státusz áttekintőt, hogy átlássa a szállítások előrehaladását a rendelések között.

  5. 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 Értékesítés ‣ Jelentések ‣ Szállítási státusz á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 az eyssen_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.