Skip to Content

Problems we've already solved

Fifteen case studies from two production Odoo platforms. Each one starts with the problem a client brought us, then shows what we found, what we built, and what changed afterward.

Find your problem

Start from the symptom

Filter by platform or area, then click through to the case study.

MAFA · Odoo 17

“Payroll is off by half a day for a few people, every single month, and nobody can figure out why.”

See how we solved this
MAFA · Odoo 17

“Our people work the same hours on the same calendar, but their contracts pay them differently — and the system can't tell them apart.”

See how we solved this
MAFA · Odoo 17

“Filing our VAT return is a multi-day spreadsheet exercise, and one missed row means it's wrong.”

See how we solved this
MAFA · Odoo 17

“Finance has a depreciation schedule and operations has a spreadsheet of who's holding what — and they don't agree.”

See how we solved this
MAFA · Odoo 17

“We're manually retyping customer forms into the ERP all day — PDFs, scans, the occasional phone photo.”

See how we solved this
MAFA · Odoo 17

“Our biometric attendance data is technically 'real' but practically fiction — duplicate punches everywhere.”

See how we solved this
MAFA · Odoo 17

“Earned overtime can only become compensatory leave. There is no way to pay it.”

See how we solved this
MAFA · Odoo 17

“Changing a single letterhead logo on our invoices means opening a code editor and redeploying.”

See how we solved this
MAFA · Odoo 17

“Our database backups exist, but nobody's confident they'd actually work in an emergency — or that the admin console is even locked down.”

See how we solved this
MAFA · Odoo 17

“Someone with admin rights accidentally uninstalled a module we depend on — and another admin could do the same tomorrow.”

See how we solved this
Aviation ERP · Odoo 18

“We need dashboards our team can actually build themselves, without a developer for every new chart.”

See how we solved this
Aviation ERP · Odoo 18

“We bill flight/project hours by hand, and disputes over 'how many hours was that really' happen constantly.”

See how we solved this
Aviation ERP · Odoo 18

“We file VAT for three companies in three GCC jurisdictions, and a gap between filing periods could go unnoticed.”

See how we solved this
Aviation ERP · Odoo 18

“Sales reps burn hours on repetitive CRM admin — writing the same follow-up checklists over and over.”

See how we solved this
Aviation ERP · Odoo 18

“Some posted journal entries don't match what they should — broken payments, and exchange-rate lines that drifted after posting.”

See how we solved this

Two platforms. Two industries. Different systems. The same engineering discipline.

Platform 01

One codebase. Four companies. Four production instances.

MAFA is the parent company behind a shared Odoo 17 engineering platform deployed independently across four companies. Each business runs its own production instance and database, while the underlying codebase is maintained as one evolving system.

Shared codebase

One Odoo 17 repository

Maintained as one evolving system, deployed independently to each company below.

MAFA

Parent company Saudi Arabia

Industrial engineering

Production instance 01 Separate database

TechTrade24 KSA

Sister company Saudi Arabia

B2B industrial trading

Production instance 02 Separate database

TechTrade24 Germany

Sister company Germany

B2B industrial trading

Production instance 03 Separate database

Eesint

Sister company Pakistan
Production instance 04 Separate database
Platform 01

MAFA & sister companies — Odoo 17

One Odoo 17 codebase, deployed independently four times for four separate companies, each its own database: MAFA (root company, industrial engineering, Jeddah), TechTrade24 KSA and TechTrade24 Germany (B2B industrial trading), and Eesint (Pakistan). Maintained continuously since April 2025.

Odoo 17 4 companies · 4 databases Saudi Arabia · Germany · Pakistan
Team-built modules
55
Lines of team-written code
~130k
Sister companies, each its own database
4
Maintained since
Apr 2025

Four sister companies, one shared codebase, four separate databases

4 companies · 4 separate databases

MAFA · Odoo 17

Payroll that was off by half a day, every month

Four parts of the system each decided what counted as a working day. We replaced them with one classifier everything reads from.

~28,000 LOC Read the case study
MAFA · Odoo 17

Four people, one schedule, four different ways to be paid

A workforce where factory, field and remote staff share a calendar but not a contract — and an attendance engine that can tell them apart.

~24,000 LOC · 147 tests Read the case study
MAFA · Odoo 17

A multi-day VAT exercise became a button

Every posted invoice, bill and reversal in the period, claimed automatically — and locked to that one batch.

Read the case study
MAFA · Odoo 17

Finance and operations finally agree on who holds what

An employee assignment became a stock move, so custody, location and book value resolve from one record.

~8,900 LOC Read the case study
MAFA · Odoo 17

Customer forms that read themselves, with a person signing off

A vision model extracts registration forms straight from incoming mail. It never writes to the database — an admin approves.

~4,350 LOC Read the case study
MAFA · Odoo 17

Biometric attendance data the payroll engine can trust

Three punches from one person became one event — and HR notifications stopped firing for months-old data.

Read the case study
MAFA · Odoo 17

Overtime that can be paid, not only taken as leave

Earned overtime had one exit — a leave allocation. Now an administrator pays the days they choose, at a rate, and the rest stay pending.

~8,000 LOC Read the case study
MAFA · Odoo 17

Changing a logo stopped needing a deployment

Every report in the system, configurable from one settings screen — per report, per page, or per company and language.

Read the case study
MAFA · Odoo 17

Backups that run, and an admin console that is no longer wide open

Scheduled backups that can't collide, and a guard on Odoo's database manager that a compromised admin account can't switch off.

~7,400 LOC Read the case study
MAFA · Odoo 17

A second lock on the modules the business can't lose

Per-module PIN protection whose recovery secret lives outside the database.

Read the case study

Plus: a financial dashboard and budget-vs-actual reporting suite (built by Yaseen), Saudi ZATCA e-invoicing compliance, sales/CRM/project analytics, geofenced attendance expensing, and roughly 45 further modules across finance, inventory, HR, and public self-service portals.

Platform 02

Aviation & Charter ERP — Odoo 18

A second Odoo 18 deployment for a Gulf-based charter aviation and logistics group, operating across the UAE, Saudi Arabia, and Bahrain as three companies under one multi-company instance. Built collaboratively across three engineers since October 2025.

Odoo 18 1 instance, 3 companies UAE · Saudi Arabia · Bahrain
Team-built modules
24
Lines of team-written code
~62k
Companies, one instance
3
Built since
Oct 2025

Three companies, one multi-company instance

  • United Arab Emirates Operating company
  • Saudi Arabia Operating company
  • Bahrain Operating company

Plus: a reusable report letterhead engine (Yaseen), percentage-based billing schedules, per-company sequence auto-provisioning that requires zero setup when a new operating company is added, a Central Bank exchange-rate integration, and a Gmail-Meet-style meeting UI for internal collaboration.

Something broken in production?

Give us the problem. We'll tell you what we see.