forked from Mapan/odoo17e
47 lines
1.8 KiB
Python
47 lines
1.8 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import api, fields, models, _
|
|
|
|
|
|
class ResCompany(models.Model):
|
|
_inherit = "res.company"
|
|
|
|
documents_hr_payslips_tags = fields.Many2many(
|
|
'documents.tag', 'payslip_tags_table')
|
|
documents_payroll_folder_id = fields.Many2one(
|
|
'documents.folder',
|
|
check_company=True)
|
|
|
|
def _payroll_documents_enabled(self):
|
|
self.ensure_one()
|
|
return self.documents_payroll_folder_id and self.documents_hr_settings
|
|
|
|
@api.model_create_multi
|
|
def create(self, vals_list):
|
|
companies = super().create(vals_list)
|
|
companies._generate_payroll_document_folders()
|
|
return companies
|
|
|
|
def _generate_payroll_document_folders(self):
|
|
group_user = self.env.ref('base.group_user')
|
|
group_payroll_user = self.env.ref('hr_payroll.group_hr_payroll_user')
|
|
parent_folder_id = self.env.ref('documents_hr.documents_hr_folder', raise_if_not_found=False)
|
|
|
|
folders = self.env["documents.folder"].sudo().create([{
|
|
'name': _('Payroll'),
|
|
'group_ids': [(4, group_payroll_user.id)],
|
|
'read_group_ids': [(4, group_user.id)],
|
|
'parent_folder_id': parent_folder_id.id if parent_folder_id else False,
|
|
'user_specific': True,
|
|
'sequence': 12,
|
|
'company_id': company.id,
|
|
} for company in self])
|
|
|
|
payslip_tag = self.env.ref('documents_hr_payroll.documents_hr_documents_payslips', raise_if_not_found=False)
|
|
for company, folder in zip(self, folders):
|
|
company.write({
|
|
'documents_hr_payslips_tags': [(6, 0, payslip_tag.ids)] if payslip_tag else [],
|
|
'documents_payroll_folder_id': folder.id
|
|
})
|