Skip to content

Core module map

This page is the spine of the documentation. It lists every Odoo core module NestERP depends on, where each dependency comes from, and which of our modules would break without it.

The list is not a judgement call. It is the union of the depends declarations of every NestERP custom module across the Odoo 16, 17 and 18 trees. Odoo ships hundreds of core modules; these are the 29 our code actually stands on.

Scope of this documentation

Two module groups are out of scope and excluded entirely:

  • nest_hms_* — the hospital suite is a separate product, nestHMS. Excluding it also removed the Odoo core modules only it required: uom, product_expiry, calendar.
  • Point of Sale / Restaurant — the pos_*, cr_pos_*, company_logo_kot_receipt and sync_pos_combo_product modules. Excluding them also removed pos_restaurant, pos_hr and pos_sale from the core list.

The count went 36 → 33 → 29 as each group came out.

The three tiers

graph TD
    A["Tier 1 — Odoo Core (Community Edition)<br/>base · web · mail · account · stock · sale · purchase · hr · product"]
    B["Tier 2 — Third Party<br/>Cybrosys: hr_payroll_community · OpenHRMS · base_accounting_kit<br/>Heritage: dynamic_accounts_report<br/>OCA: report_xlsx"]
    C["Tier 3 — NestERP Custom<br/>payroll_custom_module · thalia_* · dashboards · purchase/sales overrides · aegis_dg"]
    A --> B
    B --> C
    A --> C
Tier Who maintains it What it means for us
1. Odoo core Odoo SA, upstream Free, stable, upgrades on Odoo's schedule. Not our support burden.
2. Third party Cybrosys, Heritage, OCA We ship it, we do not own it. Version availability and licence terms are outside our control. A client must know this is in their stack.
3. NestERP custom CodeNest What we sell, support and charge for.

The most important structural fact in this stack

Odoo's official payroll module is Enterprise-only. Our entire payroll offering — payroll_custom_module, payroll_department_filter, every Tanzanian statutory salary rule — is built on Cybrosys' community payroll (hr_payroll_community), which is Tier 2. If that upstream module stalls on a future Odoo version, our payroll product stalls with it. This belongs in any technical proposal we put in front of a client.

Tier 1 — Odoo core modules NestERP depends on

29 modules. "Needed in" shows which Odoo versions of our stack require it.

Platform

Module Needed in Pulled in by
base 16 · 17 · 18 everything
web 16 · 17 · 18 inventory_dashboard, aegis_dg, nesterp_branding, mtewele_web_theme, thalia_mgmt_dashboard_v17, report_xlsx
mail 16 · 17 · 18 payroll_custom_module, thalia_invoice_reminders, aegis_dg, advanced_loan_management, hr_employee_updation, hr_reward_warning
mail_bot 17 mtewele_web_theme
contacts 17 thalia_invoice_reminders

point_of_sale is still installed, even though POS is out of scope

Three in-scope modules — nesterp_branding, mtewele_web_theme and sales_dashboard — declare a dependency on point_of_sale. So the core POS module is present in those deployments and Odoo will install it, even though the POS product is not documented or sold as part of NestERP. Worth knowing before someone wonders why a Point of Sale menu exists on a client who never bought POS.

Products and inventory

Module Needed in Pulled in by
product 16 · 17 aegis_dg, inventory_dashboard
stock 16 · 17 · 18 inventory_adjustments, inventory_dashboard, stock_dashboard, aegis_dg, purchase_multi_approval, direct_budget_management
stock_account 16 · 17 · 18 stock_dashboard, inventory_valuation_report, mrp_internal_conversion, multi_branch_base

Accounting

Module Needed in Pulled in by
account 16 · 17 · 18 base_accounting_kit, base_account_budget, payroll_custom_module, purchase_multi_approval, thalia_invoice_reminders, partner_statement, ohrms_loan, sales_dashboard, thalia_mgmt_dashboard_v17, direct_budget_management
analytic 16 · 17 · 18 base_accounting_kit
account_check_printing 16 · 17 · 18 base_accounting_kit

Sales and purchasing

Module Needed in Pulled in by
sale 16 · 17 · 18 sales_order_override, base_accounting_kit, inventory_dashboard
sale_management 17 multi_branch_base, thalia_mgmt_dashboard_v17
sale_stock 17 multi_branch_base
purchase 17 · 18 purchase_date_override, purchase_multi_approval, mtewele_report_theme, thalia_mgmt_dashboard_v17
purchase_stock 17 · 18 purchase_multi_approval, multi_branch_base
mrp 16 mrp_internal_conversion

Human resources

Module Needed in Pulled in by
hr 16 · 17 · 18 OpenHRMS suite, payroll_department_filter, employee_info_export, direct_budget_management
hr_contract 17 · 18 hr_payroll_community, employee_info_export, hr_employee_transfer, ohrms_salary_advance, hr_employee_updation
hr_holidays 17 · 18 hr_payroll_community, hrms_dashboard, hr_leave_request_aliasing
hr_attendance 17 · 18 hrms_dashboard, hr_multi_company, ohrms_core
hr_timesheet 17 · 18 hrms_dashboard, ohrms_core
hr_timesheet_attendance 17 · 18 hrms_dashboard
hr_recruitment 17 · 18 hrms_dashboard, ohrms_core
hr_expense 17 · 18 hr_multi_company, ohrms_core, thalia_mgmt_dashboard_v17
hr_gamification 17 · 18 hr_employee_updation, ohrms_core

Supporting apps

Module Needed in Pulled in by
project 17 thalia_invoice_reminders, direct_budget_management
event 17 · 18 hrms_dashboard
lunch 16 lunch_custom_module

Tier 2 — third-party modules we ship but do not own

Vendor Modules
Cybrosys — payroll hr_payroll_community, hr_payroll_account_community
Cybrosys — OpenHRMS ohrms_core, ohrms_loan, ohrms_loan_accounting, ohrms_salary_advance, hrms_dashboard, hr_employee_updation, hr_employee_transfer, hr_resignation, hr_reward_warning, hr_reminder, hr_leave_request_aliasing, hr_multi_company, oh_employee_creation_from_user, oh_employee_documents_expiry
Cybrosys — accounting base_accounting_kit, base_account_budget
Heritage dynamic_accounts_report
OCA report_xlsx, report_xlsx_helper
Vendor to confirm multi_branch_base, advanced_loan_management, employee_bonus_manager

base_accounting_kit is not an add-on, it is the accounting app

NestERP never deploys the bare core Invoicing app. base_accounting_kit supplies the Accounting root menu and the financial statements, and dynamic_accounts_report supplies the drill-down reports. Both are always installed. That means our accounting product is Tier 1 and Tier 2 combined — and a future Odoo version that these two vendors do not follow would cost a client their reports and their menu layout.

Page index and writing order

Ordered by how much of NestERP rests on each one.

Primary

# Page Covers Versions Status
1 Accounting account, analytic, account_check_printing 16 · 17 · 18 Drafted
2 Inventory stock, stock_account 16 · 17 · 18 Drafted
3 Employees hr, hr_contract, hr_gamification 16 · 17 · 18 Drafted
4 Products product 16 · 17 Drafted
5 Sales sale, sale_management, sale_stock 16 · 17 · 18 Drafted
6 Purchase purchase, purchase_stock 17 · 18 Drafted
7 Expenses hr_expense 17 · 18 Drafted
8 Platform & Base base, web, mail, mail_bot, contacts 16 · 17 · 18 Drafted

Supporting

# Page Covers Versions Status
9 Time Off & Attendance hr_holidays, hr_attendance, hr_timesheet, hr_timesheet_attendance 17 · 18 Drafted
10 Recruitment hr_recruitment 17 · 18 Drafted
11 Manufacturing mrp 16 Drafted
12 Project & Events project, event 17 · 18 Drafted
13 Lunch lunch 17 Drafted — module under construction
14 Third-party layer all of Tier 2, with vendor, licence and risk 16 · 17 · 18 Drafted

All 14 core pages are drafted from source. Every one carries a Needs verification checklist of what still has to be confirmed against a live instance — consolidated in the Live verification checklist.

Custom NestERP modules are documented after the core pages are signed off.

Two pages cannot be fully verified on the Thalia instance

  • Manufacturing is an Odoo 16 feature (mrp_internal_conversion), and Thalia runs Odoo 17. It needs an Odoo 16 client instance as reference.
  • Lunch documents a module that is still under construction, so there is nothing settled to verify yet.

Findings from the dependency scan

1. Two modules are not shippable features. thalia_tra_reconciliation is under development and declares a dependency on thalia_core, which does not exist in any of the three local trees — so it cannot install as written. lunch_custom_module is under construction. Neither may appear in a client proposal as available.

2. Seven Odoo core modules left this list as scope narrowed. uom, product_expiry and calendar were required only by the hospital suite; pos_restaurant, pos_hr and pos_sale only by the POS stack. Worth recording because it shows how much of the Odoo 16 and 18 trees belongs to products other than NestERP.

3. point_of_sale remains installed despite POS being out of scope, because nesterp_branding, mtewele_web_theme and sales_dashboard all depend on it. A client can therefore have a Point of Sale menu they never bought.

4. NestERP is not one product across three Odoo versions. aegis_dg and mrp_internal_conversion exist only in the 16 tree; the Thalia finance modules and management dashboards only in 17; payroll, purchasing, sales and inventory extensions in both 17 and 18. The documentation states per-module version availability explicitly — see Module availability by version — because a client on the wrong version will otherwise be promised something that requires a port.