47 lines
1.4 KiB
Python
47 lines
1.4 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
from odoo import models, fields, api, _
|
|
|
|
|
|
class PayrollAccountingMapping(models.Model):
|
|
"""
|
|
Payroll Accounting Mapping
|
|
Maps payroll items to chart of accounts.
|
|
Only available if account module is installed.
|
|
"""
|
|
_name = 'payroll.accounting.mapping'
|
|
_description = 'Payroll Accounting Mapping'
|
|
_rec_name = 'payroll_item'
|
|
|
|
config_id = fields.Many2one(
|
|
'payroll.config.settings',
|
|
string='Payroll Settings',
|
|
required=True,
|
|
ondelete='cascade',
|
|
)
|
|
company_id = fields.Many2one(
|
|
related='config_id.company_id',
|
|
string='Company',
|
|
store=True,
|
|
)
|
|
payroll_item = fields.Selection([
|
|
('bank_account', 'Bank Account'),
|
|
('wage_expense', 'Wage Expenses'),
|
|
('employer_tax_expense', 'Employer Tax Expenses'),
|
|
('federal_tax_liability', 'Federal Tax Liability'),
|
|
('ontario_tax_liability', 'Ontario Tax Liability'),
|
|
('vacation_pay_liability', 'Vacation Pay Liability'),
|
|
], string='Payroll Item', required=True)
|
|
account_id = fields.Many2one(
|
|
'account.account',
|
|
string='Chart of Accounts',
|
|
required=True,
|
|
domain="[('company_id', '=', company_id)]",
|
|
)
|
|
|
|
_sql_constraints = [
|
|
('unique_payroll_item_per_config',
|
|
'unique(config_id, payroll_item)',
|
|
'Each payroll item can only be mapped once per configuration.'),
|
|
]
|