メインコンテンツにスキップ
商品詳細は英語で表示されます。翻訳は近日公開予定です。
Inventory Adjustment Backdate for Odoo — A build-to-order Odoo module that lets authorized users post inventory adjustments a — 1/1イメージプレビュー

A build-to-order Odoo module that lets authorized users post inventory adjustments and stock moves on a past

effective date, each stamped with a mandatory remark for audit-clean historical records.

ECOSIRE builds, installs, and supports it on your Odoo 17, 18, or 19 environment.

Inventory Adjustment Backdate for Odooとは?

A build-to-order Odoo module that lets authorized users post inventory adjustments and stock moves on a past effective date, each stamped with a mandatory remark for audit-clean historical records. ECOSIRE builds, installs, and supports it on your Odoo 17, 18, or 19 environment. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.

主な機能

`effective_date` (Datetime) override on the inventory-adjustment and stock-move flow, replacing the hard-coded `now()` at validation only for authorized users
Mandatory `backdate_reason` (Text) enforced by an `@api.constrains` so no backdated record can be posted without a remark
Date propagation down to `stock.move`, `stock.move.line`, and the generated `stock.valuation.layer` rows so on-hand, valuation, and the ledger agree
New security group in `ir.model.access.csv` plus record rules — only controllers/inventory managers can backdate; everyone else keeps native behaviour
Configurable maximum look-back window, enforced with a `ValidationError` rather than a silent correction
Optional hard lock against posting into a closed accounting period, checking `account.move`/period state before writing
Immutable audit trail via `mail.thread` chatter plus a dedicated log model recording user, original system date, new date, and reason
Visible backdated badge and effective-date column in stock form and list views (XML for 17.0/18.0, OWL-aware for 19.0)
QWeb PDF and list-export audit report of all backdated movements over a chosen date range for finance and audit
Correct account-move date alignment under perpetual/Anglo-Saxon valuation so inventory hits the intended accounting period
Optional automated action to notify a reviewer when an out-of-window backdate is attempted
XML-RPC/JSON-RPC-friendly method so a data-migration script can post opening balances at their true historical dates
Works with existing routes, lot/serial tracking, and multi-warehouse setups without patching Odoo core files
Config settings entry to toggle the period lock and set the look-back limit without code changes

受注生産、すべておまかせ

自分での設定は不要 — ECOSIRE が構築・インストール・サポートする実働アプリです。

  1. 1

    ご注文

    一回限りの構築料金から始めます。キックオフで一緒に範囲を決めます。

  2. 2

    構築とインストール

    ECOSIRE がお客様の Odoo 上で構築・設定・インストールします。

  3. 3

    本番稼働 + サポート

    約1週間(営業日ベース)で稼働し、本番稼働後2週間のサポートが付きます。納品したコードの不具合は無償で修正します。

技術仕様

Odoo互換性
Odoo 17, Odoo 18, Odoo 19
エディション
Enterprise&Community
ライセンス
ライセンスの確認が必要です
Python要件
Python 3.10+
データベース
PostgreSQL 12+

この製品について

Odoo stamps every stock move and inventory adjustment with the server date at the moment you validate it. That is correct for live operations, but it breaks the moment you are entering history: an opening stock count captured a week late, a physical count reconciled at month-end, a goods receipt that arrived before your go-live, or a correction that auditors expect to sit on the date the event actually happened. Out of the box the stock.move and stock.move.line date fields are written programmatically at validation, the inventory-adjustment flow on stock.quant records now(), and the valuation layers in stock.valuation.layer inherit that same timestamp — so your stock ledger, your valuation, and your accounting periods all disagree with the real-world event date. Finance then sees inventory movement land in the wrong period, and there is no native, permission-gated way to say "this happened on the 3rd, not today."

ECOSIRE builds a dedicated Inventory Adjustment Backdate module that adds a validated, audit-controlled effective-date override to Odoo's stock engine. We introduce an effective_date (Datetime) field and a required backdate_reason (Text) field on the adjustment and move flow, wired through a targeted extension of stock.quant, stock.move, and stock.move.line. When an authorized user posts a backdated adjustment, an override on _apply_inventory() / the move validation path propagates the chosen date down to the resulting moves, move lines, and the generated stock.valuation.layer rows, so the on-hand history, the SVL journal, and the account move (when Anglo-Saxon/perpetual valuation is on) all carry the same effective date. Every backdate writes an immutable trail — who set it, the original system date, the new date, and the remark — via the standard mail.thread chatter and a dedicated log model, so nothing is silently rewritten.

The control layer is where a made-to-order build earns its price. We gate the ability to backdate behind a new security group in ir.model.access.csv plus record rules, so only a controller or inventory manager can override a date; everyone else follows the normal now() behaviour. We add a configurable guard rail — a maximum look-back window and an optional hard lock against posting into a closed accounting period — enforced with an @api.constrains validation and a clear ValidationError rather than a silent correction. The reason field is mandatory by constraint, the backdated documents surface a visible badge in the form and list views (XML in 17.0/18.0, OWL-aware where you are on 19.0), and we ship an audit report (QWeb PDF or list export) of every backdated movement over a date range for your finance and audit teams. Optional add-ons we scope on request: an automated action to flag out-of-window attempts, and an XML-RPC/JSON-RPC endpoint so a data-migration script can post opening balances at their true dates.

Because this is build-to-order, delivery works as a short engagement rather than a download. We start with a scoping call to confirm your Odoo version (17.0 / 18.0 / 19.0), Community vs Enterprise, your valuation method, and who is allowed to backdate. We then build against a copy of your environment, hand you the module on a staging database for UAT, and only deploy to production once you have signed off — with a rollback path ready. Typical delivery is one working week from confirmed scope. Pricing starts from $999 (indicative, single-company base scope); multi-company propagation, closed-period accounting locks, deep localization of the audit report, and bulk data-migration backdating via the API increase the quoted scope.

得られるもの

  • Installable module source code for your target Odoo version (17.0, 18.0, or 19.0), with a clean `__manifest__.py` and no core patches
  • Installation and configuration on your staging environment, including the security group and guard-rail settings
  • Technical documentation: models extended, fields added, security groups, record rules, and constraint logic
  • End-user guide plus a live training session for the controllers/managers who will use backdating
  • Post-go-live support window for defect fixes and questions after production deployment
  • UAT on a staging database with a documented rollback plan before any production change
  • Git repository handover with the full commit history and tagged release
  • Audit-report template and a short runbook for your finance/audit team on reviewing backdated movements

これは誰のためのものですか

Financial Controller / Accountant

Needs inventory movement to land in the correct accounting period so valuation and the GL reconcile. Wants backdating locked to authorized users, blocked in closed periods, and fully audit-logged with a reason on every entry.

Inventory / Warehouse Manager

Runs physical counts and reconciliations that are often finalized days after the count date. Needs to post the adjustment on the real count date without breaking on-hand history or lot/serial traceability.

ERP Implementation Lead (go-live / migration)

Loading opening balances and historical stock during a go-live or data migration. Needs to backdate opening moves to their true dates in bulk, ideally driven via the XML-RPC/JSON-RPC API, so historical reporting is accurate from day one.

Compliance / Audit Officer

Answers to external auditors and regulators. Needs an immutable trail of who changed a date, from what to what, and why, plus a report of every backdated movement over any period.

Inventory Adjustment Backdate for Odoo の比較方法

基準エコシエールカスタムビルド競合他社Odoo 標準機能
Backdated effective datePermission-gated override propagated to moves, lines, and valuation layersPossible, but you design and test the propagation yourselfOften sets the move date only, valuation may lagAlways uses server `now()` at validation — no override
Mandatory reason / remarkEnforced by `@api.constrains`; no backdate without a remarkOnly if you build and test the constraintVaries; frequently optional or absentNo concept of a backdate reason
Access controlDedicated security group + record rules; others keep native behaviourYou define the groups and rules from scratchGeneric or all-or-nothing accessNo backdating capability to control
Accounting-period safetyOptional hard lock against posting into closed periodsMust be researched and coded per your valuation setupRarely checks period stateNot applicable
Audit trailImmutable log of user, original date, new date, reason + chatterOnly what you choose to buildBasic or no dedicated logStandard chatter only, no date-change record
Version + edition fitBuilt and tested for your exact 17.0/18.0/19.0, Community or EnterpriseYou own version compatibilityGeneric build; may not match your editionN/A
Delivery modelBuild-to-order: scoping, staging UAT, sign-off, rollback planIn-house or contractor time and risk on youInstant install, but generic and unsupported for your caseIncluded, but the capability does not exist
Ownership + supportFull git repo handover + post-go-live support windowYou maintain it entirelyVendor-dependent, limited to their roadmapStandard Odoo support only

Inventory Adjustment Backdate に関するよくある質問

How long does delivery take?

This is a build-to-order module, not an instant download. Typical delivery is one working week from confirmed scope. After a short scoping call we build against a copy of your environment, hand it over on staging for UAT, and deploy to production only once you have signed off. Complex scope — multi-company, closed-period locks, or bulk migration — can extend the timeline, which we confirm before you commit.

Will this let anyone change stock dates and hide it?

No. Backdating is gated behind a dedicated security group and record rules, so only the controllers or managers you designate can override a date. A remark is mandatory, and every backdate is written to an immutable audit trail — user, original system date, new date, and reason — via chatter and a dedicated log model. It records history transparently; it does not silently rewrite it.

Does the backdated date reach accounting and valuation, or just the stock move?

It propagates. The effective date is pushed to the `stock.move`, the `stock.move.line`, and the generated `stock.valuation.layer` rows, and under perpetual/Anglo-Saxon valuation the resulting account move carries the same date so inventory lands in the intended accounting period. We confirm your exact valuation method during scoping so the behaviour matches your setup.

Which Odoo versions do you support, and Community or Enterprise?

We build for Odoo 17.0, 18.0, and 19.0, on both Community and Enterprise. Views are delivered as classic XML on 17.0/18.0 and OWL-aware where you are on 19.0. We confirm the exact version and edition on the scoping call because the stock and valuation internals differ slightly across releases.

How does pricing and scoping work?

Pricing starts from $999 (indicative, single-company base scope). The final number is a fixed quote issued after the scoping call, once we know your version, edition, valuation method, and whether you need multi-company propagation, closed-period locks, localization, or bulk API-driven backdating. You approve the fixed quote before any build work begins.

What about support and future Odoo updates?

Every engagement includes a post-go-live support window for defect fixes and questions. Because the module extends stock and valuation rather than patching core, it ports cleanly; when you upgrade to a newer Odoo version we can quote a compatibility pass. You also receive the full git repository, so your own team can maintain it if you prefer.

Can we bulk-backdate opening stock during a migration?

Yes, this is a common scope add-on. We can expose a method callable over the XML-RPC/JSON-RPC API so your migration script posts each opening balance at its true historical date, with the reason and audit trail applied automatically. Bulk migration volume is one of the drivers that increases the quoted scope, so we size it during scoping.

見積もりを依頼

Inventory Adjustment Backdate

A build-to-order Odoo module that lets authorized users post inventory adjustments and stock moves on a past effective date, each stamped with a mandatory remark for audit-clean historical records. ECOSIRE builds, installs, and supports it on your Odoo 17, 18, or 19 environment.

  • `effective_date` (Datetime) override on the inventory-adjustment and stock-move flow, replacing the hard-coded `now()` at validation only for authorized users
  • Mandatory `backdate_reason` (Text) enforced by an `@api.constrains` so no backdated record can be posted without a remark
  • Date propagation down to `stock.move`, `stock.move.line`, and the generated `stock.valuation.layer` rows so on-hand, valuation, and the ledger agree
  • New security group in `ir.model.access.csv` plus record rules — only controllers/inventory managers can backdate; everyone else keeps native behaviour

見積もりを依頼

Inventory Adjustment Backdate のご要望をお知らせください。価格、ライセンスの選択肢、貴社に合わせたご提案を、通常1営業日以内にお送りします。

今すぐのお支払いはありません。これはチームへの見積もり依頼を送信します。価格と次のステップをメールでご案内します。