Repository
OCA/account-financial-tools · module folder · Try on Runboat
Module version
1.0.0
Category
Accounting
Folder size
0.11 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/account-financial-tools
Last tracking update
2026-08-17 18:05:57
Authors
Odoo Community Association (OCA), APSL-Nagarro
Maintainers
Odoo Community Association (OCA), APSL-Nagarro
Committers
Weblate, OCA-git-bot, oca-ci, BernatObrador
Odoo dependencies
Python dependencies
openpyxl>=3.1.0, pandas
System dependencies
None
Required by
None
Description
This module allows importing payroll data from Excel (.xlsx) files into accounting journal entries in Odoo. It streamlines integration between external HR/payroll systems and Odoo’s accounting module.

### Main Features:

- Map Excel columns to specific accounting accounts.
- Detect and report missing employees based on VAT/ID/Passport numbers.
- Associate imported data with a specific accounting journal.
- Support for multiple mapping configurations per company.

This module is ideal for companies that receive externally processed payroll in Excel format and need a semi-automated way to post it into Odoo's accounting system.

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
view_missing_partner_wizard missing.partner.wizard.form missing.partner.wizard form New
view_payroll_import_form payroll.import.wizard.form payroll.import.wizard form New
view_payroll_mapping_form payroll.import.mapping.form payroll.import.mapping form New
view_payroll_mapping_line_tree payroll.import.mapping.line.tree payroll.import.mapping.line list New
view_payroll_mapping_tree payroll.import.mapping.tree payroll.import.mapping list New
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (4)

New fields (1)
  • missing_ids Text
    args: 'Missing IDs'
Public methods (0)

No public methods.

New fields (5)
  • company_id Many2one → res.company
    default=<expr> required=True string='Company' args: 'res.company'
  • id_column Char
    help='Name of the column in the Excel file that contains\n VAT/ID/Pasport numbers to map with the contact.\n It uses the identification_id or passport_id field of the employee.' required=True args: 'ID Column'
  • journal_id Many2one → account.journal
    required=True string='Journal' args: 'account.journal'
  • mapping_line_ids Many2many → payroll.import.mapping.line
    string='Column Mappings' args: 'payroll.import.mapping.line'
  • name Char
    required=True args: 'Mapping Name'
Public methods (0)

No public methods.

New fields (4)
  • account_id Many2one → account.account
    required=True string='Account' args: 'account.account'
  • column_name Char
    required=True args: 'Excel Column Name'
  • company_id Many2one → res.company
    default=<expr> required=True string='Company' args: 'res.company'
  • move_type Selection
    required=True args: [('debit', 'Debit'), ('credit', 'Credit')]
Public methods (0)

No public methods.

New fields (3)
  • file Binary
    required=True args: 'Excel File'
  • filename Char
  • mapping_id Many2one → payroll.import.mapping
    required=True string='Column Mapping' args: 'payroll.import.mapping'
Public methods (6)
  • action_import_payroll(self)
  • build_move_lines(self, df, account_map)
  • check_columns(self, df, account_map)
  • get_account_map(self)
    Builds account mapping filtered by company
  • get_partner(self, vat)
    Searches for employee by VAT and return the asociated partner.
  • show_mismatch_error(self, move_lines, partner, vat, total_debit, total_credit)

Loading…

Loading…