Auto
Skip to Content

Revamping ERP Operations for Elumatec with Tailored Accounting and Inventory Solutions

Elumatec: Odoo ERP Refactor for UAE VAT | KoderXpert

Machinery manufacturing · Odoo ERP refactoring

Elumatec: an inherited ERP, refactored until every number can face an audit

audit first, rebuild second

Elumatec builds machinery for aluminium, PVC and steel profiles, sold in 50+ countries. Its UAE division ran on an ERP built by an earlier vendor that had quietly drifted out of step with UAE VAT and with the business itself. KoderXpert audited everything, then rebuilt accounting, inventory, reporting and access until the system could be trusted again.

A profile-cutting machine with a spinning gear, an aluminium profile bar, sparks and a VAT-compliant report pinging a check, representing the refactored Odoo ERP for Elumatec VAT ✓
precision, now in the books too ✨
wow!0compliance gaps closed at the source
0+countries served by the global brand
0%system adoption after the refactor
0delivery phases, audit to handover
Client
Elumatec, UAE division
Industry
Machinery for aluminium, PVC & steel profiles
Platform
Odoo ERP, refactored
Implementation partner
KoderXpert Technologies
Headline result
Dubai VAT compliant, audit-ready ERP

01 · Overview

The 30-second version

  • Elumatec is a global leader in machinery for processing aluminium, PVC and steel profiles, operating in 50+ countries; its UAE division serves construction, automotive and industrial fabrication across the GCC.
  • An earlier vendor's ERP had drifted out of step with UAE VAT requirements: unsynced inventory, no native reports, loose access control, and teams double-checking everything by hand.
  • KoderXpert ran an end-to-end audit first, then refactored in four moves: a Dubai VAT-compliant accounting rebuild, an inventory cleanup with real-time sync, native custom reporting, and role-based access, reaching 100% adoption.

02 · Where the inherited ERP broke down

What was going wrong before Odoo?

Five cracks that widened on audit day

Four teams ran four daily workarounds: finance corrected the books by hand, warehouse distrusted its own stock counts, leadership waited days for spreadsheets, and IT guarded a system with no real roles. Plus the crack underneath them all.

UAE VAT gaps

The chart of accounts and tax configuration did not align with UAE VAT requirements, creating real compliance exposure.

The cost → exposure on every filing

Unsynchronized inventory

Stock counts in the system rarely matched the shelves, because sales and purchases were not syncing with inventory in real time.

The cost → shelves vs system, always apart

No custom reports

Financial and stock reports leadership needed did not exist natively and had to be rebuilt manually every time.

The cost → a spreadsheet, days later

Poor access controls

Permissions were not scoped by role, leaving data exposed to more people than necessary.

The cost → habit instead of policy

Low system trust

Cumulatively, teams stopped trusting the ERP's numbers and started double-checking everything by hand.

The cost → the ERP, plus a shadow ERP

A foundation nobody mapped

Built by an earlier vendor, the system's gaps were invisible on a good day and a real risk on an audit day.

The cost → surprises saved for auditors
running on someone else's build? this is where refactors begin…

03 · The turnaround

Drag it and see the before & after yourself

Slide the orange handle. Left is the inherited ERP nobody fully trusted, right is the refactored system.

✗ The inherited ERP
  • Chart of accounts never built for UAE VAT
  • Stock counts rarely matching the shelves
  • Leadership reports rebuilt by hand, days later
  • Access scoped by habit, not by role
  • Every number double-checked manually

the shadow-spreadsheet era 😵

an audit-ready ERP ✨

✔ After the refactor
  • Dubai VAT-compliant setup, multi-currency ready
  • Inventory syncing with every sale & purchase
  • VAT, P&L, balance sheet & aging stock, native
  • Role-based permissions across every function
  • Numbers the whole company stands behind

← drag toward the workarounds · drag toward the trust →

04 · The plan

What "fixed" had to actually mean

The brief in one line: make the ERP something we can stand behind, in front of our team and in front of an auditor. Hover any goal to tick it off.

VAT compliance: rebuild tax configuration and the chart of accounts to UAE standards.

Inventory accuracy: clean existing records and resynchronize stock with sales and purchasing in real time.

Native reporting: give leadership the VAT, financial and stock reports the system never had.

Access control: introduce role-based permissions and tighten data security.

Multi-currency clarity: reflect how the business actually trades across the region.

Restore trust: one database everyone works from, with no shadow spreadsheets.

05 · What we delivered

What did KoderXpert build?

The solution in four moves

Accounting, inventory, reporting, access: refactored on one database, where every account, stock movement, report and permission shares a single record. No exports, no reconciliation.

Block 01

Accounting refactor

Tax configuration rebuilt to match UAE VAT precisely, a compliant chart of accounts where every transaction lands where an auditor expects it, and accurate multi-currency reporting.

compliance closed at the source
Block 02

Inventory overhaul

Existing stock data audited and corrected first, then real-time sync so inventory updates automatically against every sales and purchase transaction, with valuation that reflects the shelves.

records the warehouse believes
Block 03

Five native reports

VAT summary ready for filing, real-time P&L, balance sheet, aging stock that flags slow movers before they become write-offs, and warehouse audit reports, all built into the system.

leadership answers in one click
Block 04

Role-based access

Permissions configured by role across every department and function, replacing habit with policy and closing unnecessary data exposure.

audit-ready access
Block 05

One database underneath

Every account, stock movement, report and permission shares a single record, eliminating the exports and manual reconciliation the old setup demanded.

no more parallel truths
Block 06

Adoption by design

Because the numbers finally held, every team moved back onto the system, and the shadow spreadsheets retired.

100% adoption, 0 workarounds
audit first VAT chart live stock 5 reports scoped access
the whole refactor, one flow: nothing rebuilt before it was audited ✨

06 · Functional deep dive

How the fixed system actually works

The delivery summary above says what changed. This is the functional detail underneath it: how the accounts are structured, how stock stays true, what each report contains, and who can touch what.

Chart of accounts & UAE VAT architecture

The chart was rebuilt top-down instead of patched: a clean, classed account structure with the UAE tax layer configured the way the Federal Tax Authority expects to read it.

  • Structured account classes: assets, liabilities, equity, income and expenses rebuilt with a consistent coding scheme, so every transaction has exactly one correct place to land.
  • VAT groups done properly: 5% standard-rated, zero-rated and exempt supply taxes configured separately for sales and purchases, each mapped with tax tags that roll up to the corresponding boxes of the UAE VAT return.
  • Fiscal positions: automatic tax mapping per customer and vendor type, so domestic, GCC and export transactions pick the right treatment without the user choosing.
  • Multi-currency: AED as base currency with automated rate updates and revaluation, matching how the division actually trades across the region.

Inventory model & real-time sync

The stock problem was solved in two layers: first correct the data, then make it impossible for the data to drift again.

  • Cleanup before configuration: physical counts reconciled against system quantities, with every correction posted as a documented inventory adjustment rather than a silent edit.
  • Automated valuation: products moved to automated average-cost valuation, with stock journals wired into the new chart of accounts so the warehouse and the balance sheet finally describe the same reality.
  • Transaction-driven movements: every sale, delivery, receipt and return updates stock in real time through Odoo's native flows; no side-channel spreadsheets remain.
  • Reordering rules: minimum and maximum thresholds on fast-moving items, so replenishment is triggered by the system instead of by someone noticing an empty shelf.

The five reports, specified

Each report leadership asked for was built natively into the system, reading live transaction data rather than a rebuilt spreadsheet.

  • VAT summary: output and input tax grouped by tax tag, aligned to the UAE return structure, filterable by period, ready for filing.
  • Profit & loss: real-time P&L with period comparison, drillable from any line straight down to the journal items behind it.
  • Balance sheet: live financial position from the rebuilt chart, closing the gap between what finance reported and what the system held.
  • Aging stock: inventory bucketed by days-in-stock (30 / 60 / 90+), flagging slow movers before they become write-offs.
  • Warehouse audit: movement and variance history per location, giving the warehouse team the same defensible trail finance gets.

Roles & the access matrix

Access moved from habit to policy: five role profiles, each seeing exactly what its job requires and nothing more.

  • Finance: full accounting and reporting; no rights to alter stock quantities directly.
  • Warehouse: inventory operations, transfers and counts; journals and financial reports out of view.
  • Sales & purchasing: their own documents and partners, with pricing visibility scoped by role.
  • Leadership: read access to every report and dashboard, without accidental edit rights on operational records.
  • Administration: configuration and user management, with sensitive changes traceable to a named user.

Invoicing & the money-in flow

With the chart rebuilt, the billing cycle was reconnected to it end to end, so cash and compliance travel together.

  • Order-linked invoicing: customer invoices generate from confirmed orders with the correct VAT treatment applied by fiscal position, not by memory.
  • Payment reconciliation: incoming payments register against invoices and reconcile with bank statements inside Odoo, keeping receivables live rather than month-end.
  • Vendor bill control: supplier bills anchor to purchase orders and receipts, so quantity and price mismatches surface before payment, not after.
  • Credit notes & corrections: reversals flow through the same tax tags as the originals, so the VAT return stays consistent even when commerce is messy.

Order-to-cash & procure-to-pay, connected

The refactor's real test is a full business loop crossing every fixed area without a manual patch. Both core loops now run clean.

  • Order-to-cash: quotation, confirmation, delivery (stock decremented and revalued automatically), VAT-correct invoice, payment, reconciliation, and the P&L updated the same minute.
  • Procure-to-pay: purchase order, goods receipt (stock incremented at cost), vendor bill matched to receipt, payment scheduled, input VAT captured for the return.
  • One record, every view: the same transaction is what the warehouse sees as a move, finance sees as journal items, and leadership sees inside a report; there is no translation layer to drift.
AED 5% tax tag 0% / ex. FTA return

How a transaction reaches the return

Every invoice line carries its tax, every tax carries its tags, and every tag rolls up to one box of the UAE VAT return. That is the whole trick: the filing is a report, not a reconstruction, because the mapping happens at posting time, on every single transaction.

07 · How we built it

How was the Odoo project delivered?

Audit first, rebuild second

Nothing changed in the system until the gaps were fully mapped. Six phases from end-to-end audit to documented handover.

1

System audit & planning map every gap

The existing ERP reviewed end to end to identify every compliance, data and access gap before changing anything.

2

Accounting redesign rebuild the foundation

Chart of accounts and VAT configuration rebuilt to UAE compliance standards from the ground up.

3

Inventory cleanup & reimport reset the stock truth

Stock records cleaned and accurate data reimported as the new foundation.

4

Custom report development build the answers in

The VAT, financial and stock reports leadership needed, developed natively into the system.

5

Access management & security scope every role

Role-based permissions configured across every department and function.

6

Training & handover hand over the keys

Every team walked through the new system, with full documentation and support.

08 · Engineering notes

The technical decisions behind the refactor

For the technically curious: how the work was engineered so the fixes survive upgrades, audits and time.

Custom addons, zero core edits

Everything KoderXpert changed lives in namespaced custom modules (kx_account_uae, kx_stock_sync, kx_reports, kx_access) built on Python and the Odoo ORM.

  • Inheritance, not modification: models and views are extended through Odoo's inheritance mechanisms, never edited in core, so future Odoo upgrades do not bury the fixes.
  • Configuration as data: taxes, fiscal positions, account groups and access rules are shipped as XML data records, making the whole setup reproducible and reviewable.
  • PostgreSQL underneath: one database as the single source of truth for accounts, stock, reports and permissions; no exports, no reconciliation jobs.

The data migration pipeline

The riskiest part of any refactor is the data. It moved through a staged pipeline, not a bulk import.

  • Extract & cleanse: legacy records exported, deduplicated and normalized in a staging environment before a single record touched production.
  • Ordered loading: imports run in dependency order: chart of accounts, partners, products, stock quantities, then open receivables and payables, via the ORM so every business rule still applies.
  • Verified balances: opening balances posted as auditable journal entries, with record counts and trial-balance equality checked against the source before sign-off.

How the reports are built

The five reports are native Odoo artifacts, not attachments: they read live data and inherit the access rules automatically.

  • QWeb templates render the printable financial statements, so what leadership prints matches what the screen shows.
  • Aggregated queries: screen reports read grouped, indexed data rather than row-by-row scans, keeping them fast as transaction volume grows.
  • Filters as first-class citizens: period, location and tax-tag filters are part of the report definitions, so "this quarter, this warehouse" is one click, not a new spreadsheet.

Testing, cutover & hardening

The refactor landed on a live business, so the rollout was engineered to be boring.

  • Staging mirror: every change proven on a copy of the real database before reaching production.
  • Role-based UAT: finance, warehouse and sales each walked scripted scenarios end to end, including a full closing cycle, before go-live.
  • Access hardening: record rules and group permissions reviewed department by department, replacing shared logins and habit-based access.
  • Documented handover: configuration, roles and report definitions documented so the system's logic belongs to Elumatec, not to anyone's memory.

Data integrity safeguards

Correct once is not enough; the system is engineered to stay correct.

  • Constraints at the model layer: ORM and SQL constraints block impossible states (unbalanced entries, negative-cost moves, orphan journal items) at write time.
  • Scheduled automations: Odoo cron jobs refresh currency rates and snapshot aging data, so the reports read prepared, consistent figures.
  • Automated backups: scheduled database backups with tested restore points, so the audit trail itself is protected.
  • Traceability by default: Odoo's chatter and logging record who changed what on sensitive financial and stock records.

Performance & security hardening

A trusted ERP has to be fast and closed as well as correct.

  • Query performance: indexes on high-traffic fields and stored computed values keep the five reports responsive as transaction volume grows.
  • Least-privilege everywhere: access follows the role matrix down to record rules; shared logins were retired with the shadow spreadsheets.
  • Hardened environment: production served over HTTPS behind a reverse proxy, with staging isolated from live data access.
  • Change discipline: every module version-controlled in Git; nothing reaches production that did not pass staging first.
legacy sheets cleanse ORM PostgreSQL trial balance ✓

The migration, drawn end to end

Legacy records never jump straight into production. They pass through a staging cleanse, load through the ORM in dependency order so every business rule still applies, and nothing is signed off until the trial balance matches the source to the fils.

09 · The impact

What changed after go-live?

The results, in numbers

the part clients screenshot
0compliance gaps closed at the source
0%system adoption across every team
0native reports leadership runs in one click
0shadow spreadsheets left running the business
  • Dubai VAT-compliant accounting, defensible in an audit
  • Inventory that matches the shelves, updated in real time
  • VAT summary, P&L, balance sheet, aging stock & warehouse audits, native
  • Role-based access replacing habit with policy
  • Multi-currency reporting matching how the region trades
  • An ERP the whole division trusts and actually uses

10 · Under the hood

Technologies & core skills

Backend · Python 3, Odoo ORM (models, inheritance, server actions) Frontend · XML views, QWeb templates, OWL (JavaScript), HTML5, CSS3 Database · PostgreSQL (single source of truth, indexed & constrained) Reports · QWeb PDF engine + aggregated read-group dashboards APIs · XML-RPC / JSON-RPC endpoints for integrations Data migration · staged extract-cleanse-load via ORM, trial-balance verified Automation · Odoo cron (currency rates, aging snapshots), scheduled backups DevOps · Git version control · dev → staging → production · Linux + reverse proxy, HTTPS Custom addons · kx_account_uae · kx_stock_sync · kx_reports · kx_access (zero core edits)
ERP auditing & refactoring UAE VAT compliance (FTA) Chart of accounts design Inventory reconciliation & AVCO valuation Custom QWeb report development Role-based security & record rules Multi-currency accounting Zero-downtime cutover & UAT
straight from the project lead
"We had serious gaps in our ERP setup that were affecting operations and compliance. KoderXpert brought in the clarity and structure we needed. Their ability to align the ERP system with UAE accounting standards and build real-time reports has made our system reliable and future-ready."
Mr. Mohannad Othman, Elumatec

11 · Quick questions, honest answers

Thinking about a similar build?

Yes. Elumatec's system was refactored, not replaced: an end-to-end audit mapped every gap first, then accounting, inventory, reporting and access were rebuilt on the same live database. The business never stopped operating, and no disruptive re-implementation or data cutover was needed.

A structured review of the chart of accounts and tax configuration, stock data accuracy and valuation methods, existing customizations, report coverage, user roles and access rights, and data quality. The output is a prioritized gap list, so the rebuild starts with the risks that compound fastest.

The chart of accounts and tax configuration are rebuilt to Federal Tax Authority requirements: 5% standard-rated, zero-rated and exempt taxes set up separately for sales and purchases, tax tags mapped to the boxes of the UAE VAT return, and fiscal positions applying the correct treatment for domestic, GCC and export transactions automatically.

Yes. Because every transaction carries the right tax tags, a VAT summary groups output and input tax exactly along the structure of the UAE return, filterable by period and generated from live data, ready to support the filing.

Usually because sales and purchase transactions were never wired to update stock in real time, or historical records were imported badly. The fix is a two-step: reconcile physical counts and post documented adjustments, then enable automated, transaction-driven stock moves and valuation so the drift cannot restart.

Yes. Elumatec runs AED as base currency with automated exchange-rate updates and revaluation, so invoices, bills and reports in foreign currencies stay accurate without manual conversion work.

Practically any report that live transaction data can answer. For Elumatec, five were built natively: an FTA-aligned VAT summary, a real-time P&L with drill-down, a balance sheet, an aging stock report with 30/60/90+ day buckets, and a warehouse audit trail of movements and variances.

Users are assigned to groups that control menus, records and fields. Elumatec runs five role profiles (finance, warehouse, sales and purchasing, leadership, administration), enforced with record rules so each team sees exactly what its job requires and sensitive changes are traceable to a named user.

It is the riskiest part, which is why it runs as a staged pipeline: extract and cleanse in a staging environment, load in dependency order through the Odoo ORM so business rules still apply, then verify record counts and trial-balance equality against the source before anything is signed off.

Yes, by design. All changes live in namespaced custom addons that extend Odoo through inheritance; the core is never edited. Configuration ships as data records, so the whole setup is reproducible, reviewable and upgrade-safe.

It depends on the depth of the gaps, which is exactly why the audit comes first: it fixes the scope before any rebuild starts. Elumatec ran six phases, from system audit and accounting redesign through inventory cleanup, report development, access management and a documented handover.

KoderXpert is an Odoo partner that audits before it rebuilds, engineers upgrade-safe custom modules with zero core edits, and delivers compliance at the source rather than patches on top. Elumatec's outcome: five compliance gaps closed and 100% system adoption. Talk to KoderXpert about an ERP health check.

trust your ERP in front of an auditor

Running on an ERP you do not fully trust?

Tell us where the numbers stop adding up: VAT, inventory, reports or access. KoderXpert will audit first and rebuild second, until the system can stand behind itself.


the story continues...

More client stories

All case studies

Your business could be the next story here.

Same process, already proven across 20+ industries.

Your business is not a template. Your ERP should not be either.

Every project on this page started the same way: a conversation about how the business actually runs today, and where the manual hand-offs are. That is a good place to start yours too.