A build-to-order Odoo module that lets you cancel, reset to draft, and delete posted landed cost records while cleanly reversing the stock valuation and accounting entries they created. ECOSIRE scopes, builds, installs, and supports it for your Odoo 17, 18, or 19 environment. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $249.00 USD; request a quote for a scoped proposal.
ऐप मैनिफ़ेस्ट
आपके वर्कफ़्लो के अनुरूप बनाया गया
A build-to-order Odoo module that lets you cancel, reset to draft, and delete posted landed cost records while cleanly reversing the stock valuation and accounting entries they created. ECOSIRE scopes, builds, installs, and supports it for your Odoo 17, 18, or 19 environment.
स्वयं सेटअप की ज़रूरत नहीं — ECOSIRE द्वारा निर्मित, इंस्टॉल और समर्थित एक कार्यशील ऐप।
एक बार के निर्माण मूल्य से शुरू करें। किकऑफ़ पर हम आपके साथ मिलकर दायरा तय करते हैं।
ECOSIRE इसे आपके Odoo पर बनाता, कॉन्फ़िगर और इंस्टॉल करता है।
आप लगभग 2–4 सप्ताह में लाइव हो जाते हैं, लॉन्च के बाद समर्थन अवधि के साथ।
In standard Odoo, a landed cost (stock.landed.cost) is intentionally hard to undo once validated. The moment you post it, Odoo allocates the freight, duty, insurance, and handling amounts across the target stock moves, writes the adjustment onto the stock.valuation.layer records, and — for real-time (perpetual) valuation categories — posts a journal entry that debits inventory and credits the landed-cost expense/clearing account. There is no native "cancel" button and no supported reset-to-draft path. When a warehouse or finance user picks the wrong receipt, keys a duty amount off by a decimal, applies a cost to the wrong product category, or simply validates a duplicate, the only sanctioned fix Odoo offers is to book a second, opposite landed cost to net it out. That leaves a permanent trail of offsetting records, inflated valuation layers, and reconciliation noise that auditors and month-end close teams have to explain every period.
This is where a typical off-the-shelf apps.odoo.com module and Odoo core both run out of road: core gives you no cancel action at all, and generic marketplace add-ons frequently just flip a state flag without truly reversing the downstream valuation layers and journal items, which silently corrupts your inventory valuation. ECOSIRE builds a made-to-order module that adds a first-class, auditable cancellation lifecycle to stock.landed.cost. We introduce a controlled cancel state and a guarded reset-to-draft path on the model, and — critically — we generate proper accounting reversals rather than deletions: the module creates a reversing account.move (using Odoo's native reversal mechanics) so the general ledger stays balanced and traceable, unwinds or neutralizes the stock.valuation.layer rows the cost created, and restores the affected stock moves' additional landed-cost amounts to their pre-application values. Deletion of a landed cost is permitted only from a safe state and only when no irreversible downstream dependency exists.
Technically, the work centers on subclassing stock.landed.cost (and its stock.valuation.adjustment.lines) with new state transitions guarded by @api.depends/@api.constrains logic, a set of button-triggered methods (action_cancel, action_reset_to_draft, action_unlink_guard) wired into inheriting XML/OWL form views, and reversal routines that call into account.move._reverse_moves() and the valuation-layer APIs so we never bypass Odoo's own accounting engine. Access is locked down through ir.model.access.csv plus record rules and a dedicated security group, so only authorized inventory/finance roles can cancel a posted cost — with an optional approval step via an automated action or activity. Every cancellation is logged to the chatter and (optionally) a mail.activity, giving you a complete audit trail. We respect Community vs Enterprise differences (Anglo-Saxon vs Continental accounting, real-time vs manual/periodic valuation, and multi-currency landed costs) and expose the cancel/reset actions over the XML-RPC/JSON-RPC API so your integrations and automated flows can call them programmatically. The module ships tagged for Odoo 17.0, 18.0, and 19.0 with the appropriate __manifest__.py version and dependency pins for the version you run.
Because this is build-to-order, nothing is sold as an instant download. After a short scoping call we confirm your exact requirements — Odoo version, edition, valuation method, approval workflow, and any localization or multi-company nuances — then build, test on a staging copy of your database, and deploy behind a UAT sign-off with a rollback plan. Typical delivery is 2-4 weeks from confirmed scope. Pricing starts from $249 (indicative, single-company base scope); multi-company deployments, additional approval/automation logic, deep localization requirements, or reconciliation of large volumes of historical landed-cost data increase the quoted scope. You receive a fixed quote after the scoping call — never a surprise on the invoice.
Runs goods receipts and applies freight and duty as landed costs daily. Needs a safe, reversible way to undo a mistakenly validated cost without booking confusing offsetting entries that clutter the receipt history.
Owns month-end close and inventory valuation accuracy. Wants cancellations that create clean, traceable reversing journal entries and restore valuation layers, so the GL and stock valuation always reconcile.
Maintains the Odoo deployment and its integrations. Needs the cancel/reset capability exposed over the API, locked to the right security group, and delivered as clean, version-pinned code they can maintain.
Reviews inventory and cost adjustments. Requires a complete audit trail showing who cancelled what, when, and the exact reversing entries — not silent state flips or deleted records.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Cancel a posted landed cost | First-class cancel state with true reversal | Possible but you design and test it yourself | Often a state flag only, no real reversal | |
| Accounting reversal | Balanced reversing move via native `_reverse_moves()` | Depends on your team's accounting rigor | Frequently deletes or skips journal items | |
| Valuation layer integrity | Unwinds `stock.valuation.layer` cleanly | Easy to miss, risking corrupted valuation | Inconsistent; may leave stale layers | |
| Security & approval | Dedicated group, record rules, optional approval | Whatever you build in | Usually minimal access control | |
| Audit trail | Full chatter log of who, when, why | Only if you implement it | Often absent or partial | |
| Odoo version fit | Built and tested for your 17/18/19 release | Your responsibility to maintain | May lag or not match your version | |
| Delivery & risk | Staging UAT + rollback plan + support window | Full project risk on your team | Install-and-hope, no tailoring | |
| Total cost of ownership | Fixed quote, maintained by us | High build + ongoing maintenance cost | Low upfront, hidden reconciliation cost |
This is a build-to-order module, not an instant download. Typical delivery is 2-4 weeks from confirmed scope, depending on your Odoo version, valuation method, and any approval or multi-company requirements. We agree the timeline with you in writing after the scoping call.
It genuinely reverses it. The module uses Odoo's native `account.move` reversal mechanics to post a balanced reversing journal entry, unwinds the `stock.valuation.layer` rows the cost created, and restores the affected stock moves. We never just flip a state flag and leave your valuation corrupted.
We build for Odoo 17.0, 18.0, or 19.0, Community or Enterprise. We handle edition-specific differences such as Anglo-Saxon vs Continental accounting and real-time vs manual/periodic valuation, and pin the `__manifest__.py` to your exact release.
Pricing starts from $249 (indicative, single-company base scope). Drivers such as multi-company, custom approval workflows, deep localization, or migrating large volumes of historical landed-cost data increase the quoted scope. After a short scoping call you receive a fixed quote — no surprises on the invoice.
Every build includes a post-go-live support window for defect fixes and questions. When you upgrade to a newer Odoo version, we can re-target and re-test the module against that release as a separate scoped engagement.
No. Cancellation is guarded by constraints that block the action when an irreversible downstream dependency exists, and we test every scenario on a staging copy of your database under UAT before touching production, with a rollback plan in place.
Yes. The cancel and reset-to-draft actions are exposed over Odoo's XML-RPC/JSON-RPC API, so your external systems and automated flows can call them programmatically, subject to the same security group and record-rule permissions.
A build-to-order Odoo module that lets you cancel, reset to draft, and delete posted landed cost records while cleanly reversing the stock valuation and accounting entries they created. ECOSIRE scopes, builds, installs, and supports it for your Odoo 17, 18, or 19 environment.