Payment-gated delivery

Előre fizetéses értékesítési folyamatoknál — proforma számla, előleg vagy bármilyen más „fizess előbb, szállíts később” jellegű megállapodás esetén — az árunak fizikailag nem szabad elhagynia a raktárt, mielőtt a pénz ténylegesen megérkezett. A fizetéshez kötött szállítás mindaddig visszatartja egy értékesítési rendelés kimenő szállítását, amíg a rendelés ki nincs fizetve: letiltja mind a készletfoglalást, mind a Validate gombot, majd automatikusan feloldja a visszatartást, amint minden számla kiegyenlítésre kerül. Egy jogosultsággal rendelkező felhasználó továbbra is felülbírálhatja a visszatartást és korábban is elindíthatja a szállítást; a felülbírálást a chatter teljes egészében rögzíti.

Az értékesítési rendelés figyelmeztető sávja, amely jelzi, hogy a szállítás fizetésig vissza van tartva.

Az újrafelhasználható „Visszatartva” alapelem

A fizetéshez kötött szállítás egy általános visszatartási mechanizmusra épül, amely az alap eyssen_stock modulban található, és minden átvitelen elérhető, függetlenül az értékesítéstől vagy a fizetéstől:

  • egy Visszatartva kapcsoló és egy csak olvasható Visszatartás oka mező a stock.picking modellen;

  • egy piros Visszatartva szalag az átvitel űrlapján, amikor a Visszatartva be van jelölve, valamint Visszatartva / Nincs visszatartva szűrők az átvitelek listájának keresőpaneljén; és

  • az action_set_hold(reason) és action_release_hold() metódusok, amelyek együtt állítják be, illetve törlik a Visszatartva és Visszatartás oka mezőket.

A Visszatartva bejelölése azonnal megszünteti az átvitel készletmozgásainak foglalását; a feloldása újraindítja a foglalást (_action_assign), így az átvitel automatikusan újra lefoglalja az elérhető készletet. Bármely modul — nem csak a sale_stock_payment_gate — ily módon visszatartás alá helyezhet egy átvitelt, és számíthat rá, hogy a foglalás a feloldásig kikapcsolva marad.

Megjegyzés

Önmagában az általános Visszatartva csak a foglalást állítja le. Nem tiltja le a Validate gombot — ez a további, szigorúbb védelem kizárólag az alább ismertetett fizetési zsiliphez tartozik.

A fizetési feltétel jelölője

Fizetési feltétel űrlap a Fizetés szükséges szállítás előtt jelölőnégyzettel.

Hogy a fizetési zsilip egyáltalán vonatkozik-e egy rendelésre, azt a fizetési feltétele dönti el. A fizetési feltétel űrlapjához hozzáadott Fizetés szükséges szállítás előtt jelölőnégyzet jelöli meg a feltételt „fizess, mielőtt szállítasz” típusúként. Azok a rendelések, amelyek olyan fizetési feltételt használnak, amelynél ez a jelölőnégyzet nincs bejelölve — például egy utánvétes fizetési feltétel —, soha nincsenek visszatartva. Azok a rendelések, amelyeknek egyáltalán nincs fizetési feltétele, szintén soha nincsenek visszatartva.

A szállítás visszatartása a rendelés visszaigazolásakor

Amikor egy értékesítési rendelés visszaigazolásra kerül, és a fizetési feltétele fizetést követel meg a szállítás előtt, a rendelés minden még nem kész, még nem törölt kimenő átvitele egy lépésben visszatartás alá kerül: a Visszatartva bejelölésre kerül, a Visszatartás oka értéke „Szállításhoz fizetésre vár” lesz, és a zsilip saját Fizetésre visszatartva mezője is beállításra kerül. Ha a rendelés a visszaigazolás időpontjában már teljesen ki van fizetve (például egy proforma számla vagy előleg a visszaigazolás előtt kiegyenlítésre került), nem történik visszatartás, és a szállítás a szokásos módon folytatódik.

Szállítási átvitel a Visszatartva szalaggal és a fizetési visszatartás okával.

A szigorú zsilip: nincs foglalás, nincs jóváhagyás

Egy fizetés miatt visszatartott szállítás kétszeresen is le van tiltva, így sem az automatikus, sem a kézi úton nem csúszhat át:

  • Nincs foglalás. A zsilip felülbírálja a készletmozgás-foglalást, így egy fizetés miatt visszatartott átvitelhez tartozó mozgás kimarad a foglalásból, akár akkor, amikor az Odoo a visszaigazoláskor automatikusan lefoglalja a készletet, akár amikor a felhasználó a Elérhetőség ellenőrzése gombra kattint. Ez az ellenőrzés a zsilip saját Fizetésre visszatartva jelzőjén alapul, így akkor is érvényben marad, ha az általános Visszatartva kapcsolót külön törlik.

  • Nincs jóváhagyás. Ha egy fizetés miatt visszatartott szállításon a Validate gombra kattintanak, az áru kiszállítása helyett hibaüzenet jelenik meg, amely az alább ismertetett Szállításra feloldás gombra irányítja a felhasználót.

Hibaüzenet ablak, amely megakadályozza egy fizetés miatt visszatartott szállítás jóváhagyását.

Fontos

Ha egy átvitelen közvetlenül a Fizetésre visszatartva = bejelöletlen értéket írják be, az le van tiltva minden olyan felhasználó számára, aki nincs benne a Szállítás fizetés nélkül csoportban. Csak az adott csoport Szállításra feloldás gombja (vagy egy jogosultsággal rendelkező/rendszerszintű írási művelet) oldhatja fel a zsilipet — egy másik folyamatból érkező egyszerű write() nem kerülheti meg csendben.

Automatikus feloldás a rendelés kifizetésekor

Teljesen kifizetett vevői számla a mostanra feloldott szállítása mellett.

Egy rendelés akkor számít szállításra kifizetettnek, amint a hozzá kapcsolódó összes könyvelt vevői számla eléri a Fizetve vagy a Fizetés folyamatban fizetési állapotot. Egy base.automation szabály figyeli a vevői számlák (account.move, out_invoice) Fizetési állapot mezőjét, és minden olyan létrehozáskor vagy íráskor, amely érinti ezt a mezőt, újraértékeli a kapcsolódó rendelések összes kimenő, még nem kész átvitelét:

  • ha a rendelés most már teljesen ki van fizetve, minden még fizetés miatt visszatartott átvitel feloldásra kerül — a Fizetésre visszatartva, a Visszatartva és a Visszatartás oka mind törlődik, és a foglalás automatikusan újra lefut; valamint

  • ha a rendelés nincs teljesen kifizetve, és egy átvitel jelenleg nincs visszatartva (és korábban nem is oldották fel kézileg — lásd alább), az újra visszatartásra kerül „Fizetés visszavonva - a szállítás újra visszatartva.” okkal.

Megjegyzés

Fizetés folyamatban állapot kifizetettnek számít, mert egy teljes befizetést jelent, amelynek a bankkivonattal való egyeztetése még folyamatban van. Egy részleges fizetés soha nem oldja fel a visszatartást. A zsilip feltételezi, hogy a kapcsolódó számla(ák) lefedi(k) a rendelés teljes összegét — egy natív részleges előleg esetén egy teljesen kifizetett részszámla idő előtt feloldaná a teljes szállítást; ez a forgatókönyv kifejezetten kívül esik a hatókörön.

Újra visszatartás fizetés visszavonásakor

Mivel ugyanaz az automatizálás újraértékeli a rendelést a Fizetési állapot minden változásakor, egy fizetés visszavonása (például egy kifizetés egyeztetésének megszüntetése vagy törlése, aminek hatására a számla visszaáll Nincs fizetve állapotra) automatikusan újra visszatartás alá helyezi a rendelés összes még nem kész szállítását — amennyiben a szállítást korábban nem oldotta fel kézileg egy jogosultsággal rendelkező felhasználó.

Javaslat

A zsilip kizárólag a könyvelt vevői számlák szabványos account.move / payment_state mezőit olvassa. Nem függ semmilyen lokalizációtól: ugyanaz a logika oldja fel a szállítást attól függetlenül, hogy a rendelést egy magyar NAV proforma / díjbekérő számlán, egy szokásos előlegszámlán, vagy bármely más olyan modulon keresztül rendezték, amely végül könyvel és kifizet egy vevői számlát a rendeléssel szemben.

Kézi felülbírálás: szállítás feloldása fizetés előtt

A Szállításra feloldás gomb egy visszatartott átvitelen, a megerősítő kérdéssel.

Néha egy szállításnak valóban el kell indulnia, mielőtt a rendelés teljesen ki lenne fizetve (jóindulatú szállítás, megbízható ügyfél, kézi megállapodás). Az átvitel fejlécén található Szállításra feloldás gomb ezt teszi lehetővé:

  • csak akkor látható, ha az átvitel fizetés miatt visszatartás alatt áll, és csak a Szállítás fizetés nélkül biztonsági csoport tagjai számára;

  • megerősítést kér, majd törli a Fizetésre visszatartva, Visszatartva és Visszatartás oka mezőket, és beállítja a Kézileg feloldva szállításra mezőt, hogy nyomon lehessen követni a felülbírálást; valamint

  • egy chatter üzenet rögzíti, hogy ki oldotta fel a szállítást és mikor.

Chatter bejegyzés, amely rögzíti a szállítás kézi feloldását.

A Kézileg feloldva szállításra jelzővel ellátott szállítást a fent ismertetett automatikus szinkronizálás nem tartja vissza újra, még akkor sem, ha a rendelésről később kiderül, hogy ismét kifizetetlen — a kézi döntést tiszteletben tartja a rendszer, amíg valaki kézileg újra nem alkalmaz visszatartást.

A visszarendelések öröklik a visszatartást

Ha egy fizetés miatt visszatartott (vagy korábban feloldott) szállítás csak részben teljesül, és az Odoo visszarendelést hoz létre a fennmaradó mennyiségre, a visszarendelés ugyanazon szabály szerint kerül újraértékelésre, mint az eredeti szállítás: ha a rendelés még mindig fizetést követel meg a szállítás előtt, és még nincs teljesen kifizetve, az új visszarendelési átvitel ismét visszatartás alá kerül, ugyanazzal a „Szállításhoz fizetésre vár” okkal — még akkor is, ha az eredeti átvitelt korábban kézileg feloldották.

Visszarendelési átvitel, amelyet a rendszer automatikusan újra visszatart fizetés miatt.

Rendelésszintű láthatóság

Az értékesítési rendelés űrlapja figyelmeztető sávot jelenít meg — „A szállítás vissza van tartva, amíg ez a rendelés nincs kifizetve.” — a rendelés lap felett, amikor a rendelés bármely szállítása jelenleg fizetés miatt visszatartás alatt áll. Ezt a számított Szállítás fizetésre visszatartva mező vezérli, így az értékesítési munkatársak egy pillantással látják a zsilipelt állapotot anélkül, hogy meg kellene nyitniuk az átvitelt.

Konfiguráció

  1. Győződjön meg róla, hogy a sale_stock_payment_gate telepítve van. Ez automatikusan magával hozza az eyssen_stock, sale_stock, account és base_automation modulokat.

  2. Lépjen a Számvitel/Számlázás alkalmazás ‣ Konfiguráció ‣ Fizetési feltételek menüpontra, nyissa meg (vagy hozza létre) az előre fizetéses/proforma értékesítéseknél használt fizetési feltételt, és jelölje be a Fizetés szükséges szállítás előtt jelölőnégyzetet. Hagyja bejelöletlenül az olyan feltételeknél, mint az utánvét.

  3. Adja meg a Szállítás fizetés nélkül csoportot (kategória: Készlet) azoknak a felhasználóknak, akik felülbírálhatják a zsilipet — például raktárvezetőknek — a Beállítások alkalmazás ‣ Felhasználók és cégek ‣ Felhasználók menüponton keresztül. Ehhez a csoporthoz a szokásos készlet olvasási/írási jogosultság is szükséges ahhoz, hogy ténylegesen lássa és feloldhassa az átvitelt.

A Szállítás fizetés nélkül csoport hozzárendelése egy felhasználóhoz.

Nincs szükség további beállításra: a base.automation szabály és a visszatartási/feloldási logika azonnal aktív, amint a modul telepítve van, és legalább egy fizetési feltételen be van kapcsolva a jelölő.

Használat

  1. Igazoljon vissza egy olyan értékesítési rendelést, amely zsilipelt fizetési feltételt használ. A kimenő szállítása létrejön, és azonnal visszatartás alá kerül, kivéve, ha a rendelés már teljesen ki van fizetve.

  2. A rendelés űrlapja megjeleníti a A szállítás vissza van tartva, amíg ez a rendelés nincs kifizetve. sávot, a szállítási átvitel pedig a Visszatartva szalagot mutatja, Visszatartás oka = „Szállításhoz fizetésre vár.” értékkel. A Elérhetőség ellenőrzése nem foglal készletet, és a Validate megtagadja a futást.

  3. Hozza létre és könyvelje le a vevői számlát (proforma, előleg vagy szokásos számla) a rendeléshez, majd rögzítse a teljes kifizetést. Amint a számla Fizetési állapot mezője eléri a Fizetve vagy a Fizetés folyamatban értéket, az automatizálás feloldja a szállítást: a visszatartás törlődik, és a készlet ismét lefoglalásra kerül.

  4. Validate the now-released delivery normally.

  5. Ha a korai szállítás elkerülhetetlen, a Szállítás fizetés nélkül csoporttal rendelkező felhasználó megnyithatja a visszatartott átvitelt, és a fizetésre várás helyett a Szállításra feloldás gombra kattinthat. A felülbírálást a rendszer rögzíti a chatterben, és az később bekövetkező fizetésiállapot-változásokat is túléli; ha a rendelésen később visszarendelés jön létre a fennmaradó mennyiségre, az automatikusan újra visszatartásra kerül, kivéve, ha a rendelés addigra teljesen kifizetésre került.

Hatókör és modulok

A funkciót két modul biztosítja:

  • eyssen_stock — az átviteleken elérhető, általános, újrafelhasználható Visszatartva / Visszatartás oka alapelem (szalag, kapcsoló, keresési szűrők, valamint a foglalást tiltó/újrafoglaló logika), amelyet itt alapvető építőelemként használunk.

  • sale_stock_payment_gate — maga a fizetési zsilip: a Fizetés szükséges szállítás előtt fizetési feltétel jelölő, a visszaigazoláskor történő visszatartási logika, a szigorú foglalási/jóváhagyási tiltás, a base.automation által vezérelt automatikus feloldás és újra-visszatartás fizetésváltozáskor, a Szállítás fizetés nélkül csoport a Szállításra feloldás gombjával és chatter-nyomvonalával, a visszarendelések újra-visszatartása, valamint a rendelésszintű figyelmeztető sáv.