Repository
OCA/payroll · module folder · Try on Runboat
Module version
1.1.0
Category
Payroll
Folder size
0.29 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/payroll
Last tracking update
2026-08-07 08:09:28
Authors
Savoir-faire Linux, Odoo Community Association (OCA)
Maintainers
Savoir-faire Linux, Odoo Community Association (OCA)
Committers
Weblate, OCA-git-bot, oca-ci, Gil Arasa Verge, CristianoMafraJunior, Gil Arasa
Odoo dependencies
OCA/payroll:
OCA/server-ux:
odoo/odoo:
- hr
- web
- bus
Python dependencies
None
System dependencies
None
Required by
None
Description

Code Analysis

Views touched (15)
XML IDNameModelTypeStatus
hr_payslip_run_filter hr.payslip.run.period.search hr.payslip.run search Inherits payroll.hr_payslip_run_view_search
hr_payslip_run_form hr.payslip.run.period.form hr.payslip.run form Inherits payroll.hr_payslip_run_view_form
hr_payslip_run_tree hr.payslip.run.period.tree hr.payslip.run tree Inherits payroll.hr_payslip_run_view_tree
view_date_range_type_hr_form_view date.range.type.hr.form date.range.type form New
view_date_range_type_hr_tree date.range.type.hr.tree date.range.type tree New
view_hr_fiscalyear_form hr.fiscalyear.form hr.fiscalyear form New
view_hr_fiscalyear_search hr.fiscalyear.search hr.fiscalyear search New
view_hr_fiscalyear_tree hr.fiscalyear.tree hr.fiscalyear tree New
view_hr_payslip_by_employees hr_payroll_payslip_employees hr.payslip.employees Inherits payroll.view_hr_payslip_by_employees
view_hr_payslip_filter hr.payslip.period.select hr.payslip search Inherits payroll.hr_payslip_view_search
view_hr_payslip_form hr.payslip.period.form hr.payslip form Inherits payroll.hr_payslip_view_form
view_hr_payslip_tree hr.payslip.period.tree hr.payslip tree Inherits payroll.hr_payslip_view_tree
view_hr_period_form hr.period.form hr.period form New
view_hr_period_search hr.period.search hr.period search New
view_hr_period_tree hr.period.tree hr.period tree New
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (8)

New fields (2)
  • hr_fiscal_year Boolean
    string='Is HR Fiscal Year?'
  • hr_period Boolean
    string='Is HR period?'
Public methods (0)

No public methods.

New fields (1)
  • schedule_pay Selection
    index=True args: get_schedules
Public methods (0)

No public methods.

New fields (1)
  • contract_id Many2one → hr.contract
    comodel_name='hr.contract' search='_search_contract'
Public methods (0)

No public methods.

New fields (7)
  • payment_day Selection
    states={'draft': [('readonly', False)]} args: get_payment_days, 'Day of Payment'
  • payment_week Selection
    states={'draft': [('readonly', False)]} args: [('0', 'Same Week'), ('1', 'Following Week'), ('2', 'Second Following Week')], 'Week of Payment'
  • payment_weekday Selection
    states={'draft': [('readonly', False)]} args: [('0', 'Sunday'), ('1', 'Monday'), ('2', 'Tuesday'), ('3', 'Wednesday'), ('4', 'Thursday'), ('5', 'Friday'), ('6', 'Saturday')], 'Weekday of Payment'
  • period_ids One2many → hr.period
    states={'draft': [('readonly', False)]} args: 'hr.period', 'fiscalyear_id', 'Periods'
  • schedule_pay Selection
    default='monthly' required=True states={'draft': [('readonly', False)]} args: get_schedules
  • state Selection
    default='draft' args: [('draft', 'Draft'), ('open', 'Open'), ('done', 'Closed')], 'Status'
  • type_id Many2one
    default=_default_type domain=[('hr_fiscal_year', '=', True)]
Public methods (8)
  • button_confirm(self)
  • button_set_to_draft(self)
  • create_periods(self)
    Create every periods a payroll fiscal year
  • cron_create_next_fiscal_year(self)
    @api.model
  • get_generator_vals(self)
  • get_ranges(self)
  • onchange_schedule(self)
    @api.onchange('schedule_pay', 'date_start')
  • search_period(self, number)

New fields (2)
  • date_payment Date
    readonly=True states={'draft': [('readonly', False)]} args: 'Date of Payment'
  • hr_period_id Many2one → hr.period
    readonly=True states={'draft': [('readonly', False)]} string='Period' args: 'hr.period'
Public methods (4)
  • create(self, vals)
    @api.model
  • onchange_company_id(self)
    @api.onchange('company_id', 'contract_id')
  • onchange_contract_period(self)
    @api.onchange('contract_id')
  • onchange_hr_period_id(self)
    @api.onchange('hr_period_id')

New fields (2)
  • company_id Many2one → res.company
    readonly=True args: 'res.company', 'Company'
  • schedule_pay Selection
    readonly=True args: get_schedules
Public methods (0)

No public methods.

New fields (5)
  • company_id Many2one → res.company
    default=<expr> states={'close': [('readonly', True)]} args: 'res.company', 'Company'
  • date_payment Date
    states={'close': [('readonly', True)]} args: 'Date of Payment'
  • hr_period_id Many2one → hr.period
    states={'close': [('readonly', True)]} string='Period' args: 'hr.period'
  • name Char
    default=<expr> readonly=True required=True states={'draft': [('readonly', False)]}
  • schedule_pay Selection
    states={'close': [('readonly', True)]} args: get_schedules
Public methods (8)
  • close_payslip_run(self)
  • create(self, vals)
    @api.model
    Keep compatibility between modules
  • draft_payslip_run(self)
  • get_default_schedule(self, company_id)
    @api.model
  • get_payslip_employees_wizard(self)
    Replace the static action used to call the wizard
  • onchange_company_id(self)
    @api.onchange('company_id', 'schedule_pay')
  • onchange_period_id(self)
    @api.onchange('hr_period_id')
  • update_periods(self)

New fields (9)
  • company_id Many2one → res.company
    readonly=True related='fiscalyear_id.company_id' states={'draft': [('readonly', False)]} store=True string='Company' args: 'res.company'
  • date_payment Date
    required=True states={'draft': [('readonly', False)]} args: 'Date of Payment'
  • fiscalyear_id Many2one → hr.fiscalyear
    ondelete='cascade' required=True states={'draft': [('readonly', False)]} args: 'hr.fiscalyear', 'Fiscal Year'
  • name Char
    required=True states={'draft': [('readonly', False)]}
  • number Integer
    required=True states={'draft': [('readonly', False)]}
  • payslip_ids One2many → hr.payslip
    readonly=True args: 'hr.payslip', 'hr_period_id', 'Payslips'
  • schedule_pay Selection
    default='monthly' required=True states={'draft': [('readonly', False)]} args: get_schedules
  • state Selection
    default='draft' required=True args: [('draft', 'Draft'), ('open', 'Open'), ('done', 'Closed')], 'Status'
  • type_id Many2one
    default=_default_type domain=[('hr_period', '=', True)]
Public methods (5)
  • button_close(self)
  • button_open(self)
  • button_re_open(self)
  • button_set_to_draft(self)
  • get_next_period(self, company_id, schedule_pay)
    @api.model
    Get the next payroll period to process :rtype: hr.period browse record

Loading…

Loading…

Loading…