| 2026-09-01 |
19.0.0.0.21 |
FIX |
Doplnění nových stavových kódů Packety do kódovníku zásilek |
Do Selection pole packeta_parcel_status na modelu stock.picking byly doplněny nové kódové stavy Packety (kódy 25 až 31 a záložní kód 999) podle aktuální API dokumentace. Zároveň bylo v metodě cron_get_packeta_status() doplněno ošetření neznámých stavů. |
Kódovník Zásilkovny byl rozšířen o nové stavové kódy (např. dohledávání zásilky, přesměrování či změna trasování). Systém nyní tyto nové stavy u zásilek správně rozpoznává a zobrazuje. |
| 2026-06-29 |
19.0.0.0.19 |
FIX |
Zásilka Zásilkovny se při vícekrokovém výdeji vytváří pouze jednou na kroku, který generuje přepravní štítek, a její tracking reference se správně sdílí mezi ostatními pickingy objednávky |
Vícekrokový výdej (2-step Pick->Ship, 3-step Pick->Pack->Ship): zásilka Zásilkovny se nyní vytváří jen na ODCHOZÍM pickingu, ne na každém kroku. Dříve každý picking (Pick/Pack/Ship) s přepravcem Zásilkovna a prázdným tracking ref volal při potvrzení ``_create_packeta_parcel``, čímž pro jednu objednávku vznikl samostatný balík + tracking ref na každý krok. ``button_validate`` nově vytváří zásilku i štítek jen na kroku, který generuje přepravní štítek (``picking_type_id.print_label`` — stejné pole, kterým base Odoo řídí ``send_to_shipper``; výchozí ``True`` pro odchozí krok a ``False`` pro interní, ale lze jej přesunout např. na krok Pack) a vzniklý tracking ref propaguje na ostatní Zásilkovna pickingy objednávky bez tohoto pole — jen nestornované s přepravcem ``packeta`` / ``packeta_home_delivery`` (``_origamis_propagate_tracking_ref``) — ne na picking generující vlastní štítek/zásilku (např. per-package backorder) ani na cizí picking objednávky (jiný přepravce, vratka). |
Jedna objednávka = jedna zásilka Zásilkovny (ne jedna na každý skladový krok); zásilku lze podle nastavení „Generovat přepravní štítek" vytvořit i na dřívějším kroku (např. Pack); všechny ostatní pickingy objednávky sdílejí stejnou sledovací referenci. |
| 2026-06-29 |
19.0.0.0.18 |
FIX |
Opraveno zobrazení a výběr výdejních míst Zásilkovny v e-shopu včetně externích výdejních míst a home delivery |
Refaktoring eshop integrace Zásilkovny: tlačítko *Vybrat výdejní místo* se zobrazuje i pro přepravce ``packeta_home_delivery`` s externími výdejními místy (``allow_carrier_points_ext``); blok dodání v souhrnu objednávky se vykresluje aditivně místo nahrazení celého ``delivery_and_billing`` (nativní šablona dál vykresluje fakturaci/dodání i odkaz Upravit — odpadlo křehké dělení ``display_name`` i natvrdo zadaná URL pokladny); ``packeta_update_carrier`` i validace platby pokrývají ``packeta`` i ``packeta_home_delivery`` (výdejní místo je povinné jen u carrier points); ``packeta_set_pickup_point`` vrací explicitní success/error — zobrazený zákazníkovi notifikací — místo tichého zahození výběru nesynchronizovaného do ``packeta.delivery.points``; opravena chybná hláška "Packeta boxes" u validace carrier point; inline styl tlačítka přesunut do CSS třídy. |
Výdejní místa (vč. externích carrier points / home delivery) se nabízejí správně, souhrn objednávky se nerozbije konfliktním modulem ani formátem adresy, zákazník dostane zpětnou vazbu když místo nelze uložit, a šablona/JS dodržují konvence Odoo. |
| 2026-06-24 |
19.0.0.0.17 |
IMP |
Refaktoring validace skladových přesunů a stabilizace integrace Zásilkovny |
Refaktoring ``stock.picking``: ``button_validate`` volá ``super()`` jednou na recordsetu (místo N× na celém recordsetu ve smyčce, což hrozilo duplicitními skladovými pohyby) a vrací správný výsledek; odstraněno automatické generování faktury při validaci, model ``account.move`` (override ``payment_reference``), pole ``packeta_customer_invoice_journal_id`` (``res.company`` i ``res.config.settings`` + box v nastavení účetnictví + journal default v post-init) a měkká závislost na ``bi_website_cash_on_delivery`` (dobírka se řídí jen polem ``so_collect_cod``); opraven NameError (nedefinovaná fault) v ``action_get_packeta_status``; ``packeta_delivery_point_id`` je read-only po doručení/zrušení zásilky (na příjemce i na objednávce); tlačítko Aktualizovat stav zásilky se zobrazuje jen na výdejních přesunech. Vedlejší efekty Zásilkovny v ``button_validate`` běží jen když validace skutečně proběhla (res je ``True``, příjemka je done a ještě nemá tracking ref) — žádný předčasný ani duplicitní balík; SO write už nepřepisuje výdejní místo na již finálních příjemkách. Poznámka pro port do biotomal: override ``account.move`` nesloužil jen auto-faktuře — razil variabilní symbol dobírky (``payment_ref_for_cod``) na ``payment_reference`` KAŽDÉ faktury Zásilkovny (i z ``origamis_biotomal_batch_invoicing`` a běžné fakturace), takže jeho smazání v biotomal kopii ten odkaz zahodí, pokud se nezachová; ``stock.picking`` ``payment_ref_for_cod`` stále zapisuje (nyní write-only v tomto modulu). |
Hromadná validace příjemek je bezpečná a rychlá bez duplicitních pohybů, nevznikají nečekané automatické faktury, výdejní místo nelze měnit po doručení a tlačítko stavu zásilky se zobrazí jen tam, kde to dává smysl. |
| 2026-06-23 |
19.0.0.0.16 |
FIX |
Opraveny problémy s hromadným importem a editací přepravců Zásilkovny. |
Filtrace vytvořeného recordsetu v ``delivery.carrier.create`` (četl ``delivery_type`` na multi-záznamu a padal při hromadném importu na Expected singleton); odstranění chybného ``@api.model`` z ``packeta.delivery.carriers.write``, aby kaskáda na ``delivery.carrier`` (max. hmotnost / země) proběhla při editaci; vynulování mocku v ``rate_shipment`` a odstranění ladicích printů (Zásilkovna nemá rate API — cena vychází z Fixní marže metody / ``fixed_margin``); pole přepravců synchronizovaná z API jako readonly; přejmenování zkopírované třídy ``PacketaDeliveryPoints`` na ``PacketaDeliveryCarriers`` a odstranění nepoužitých importů. |
Hromadný import a editace přepravců už nepadají, cena dopravy Zásilkovny je správně řízena Fixní marží metody a konfigurace přepravců je čistší a bezpečnější na údržbu. |