Código fonte para l10n_br_hr_contract.models.hr_contract

# -*- coding: utf-8 -*-
# Copyright (C) 2016  Daniel Sadamo - KMEE Informática
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html

from openerp import models, fields, api
from openerp.addons.l10n_br_base.tools import fiscal
from openerp.exceptions import ValidationError


MONTHS = [
    ('1', 'January'),
    ('2', 'February'),
    ('3', 'March'),
    ('4', 'April'),
    ('5', 'May'),
    ('6', 'June'),
    ('7', 'July'),
    ('8', 'August'),
    ('9', 'September'),
    ('10', 'October'),
    ('11', 'November'),
    ('12', 'December'),
]


[documentos]class HrContractAdmissionType(models.Model): _name = 'hr.contract.admission.type' name = fields.Char(string='Admission type') code = fields.Char(string='Code') @api.multi
[documentos] def name_get(self): result = [] for record in self: name = record['name'] if record['code']: name = record['code'] + ' - ' + name result.append((record['id'], name)) return result
[documentos]class HrContractLaborBondType(models.Model): _name = 'hr.contract.labor.bond.type' name = fields.Char(string='Labor bond') code = fields.Char(string='Code') @api.multi
[documentos] def name_get(self): result = [] for record in self: name = record['name'] if record['code']: name = record['code'] + ' - ' + name result.append((record['id'], name)) return result
[documentos]class HrContractLaborRegime(models.Model): _name = 'hr.contract.labor.regime' name = fields.Char(string='Labor regime') short_name = fields.Char(string='Short name') @api.multi
[documentos] def name_get(self): result = [] for record in self: name = record['name'] if record['short_name']: name = record['short_name'] + ' - ' + name result.append((record['id'], name)) return result
[documentos]class HrContractSalaryUnit(models.Model): _name = 'hr.contract.salary.unit' name = fields.Char(string='Salary unit') code = fields.Char(string='Code') @api.multi
[documentos] def name_get(self): result = [] for record in self: name = record['name'] if record['code']: name = record['code'] + ' - ' + name result.append((record['id'], name)) return result
[documentos]class HrContractResignationCause(models.Model): _name = 'hr.contract.resignation.cause' name = fields.Char(string='Resignation cause') code = fields.Char(string='Resignation cause code') fgts_withdraw_code = fields.Char(string='FGTS withdrawal code') @api.multi
[documentos] def name_get(self): result = [] for record in self: name = record['name'] if record['code']: name = record['code'] + ' - ' + name result.append((record['id'], name)) return result
[documentos]class HrContractNoticeTermination(models.Model): _name = 'hr.contract.notice.termination' name = fields.Char(string='Notice of termination type')
[documentos]class HrContract(models.Model): _inherit = 'hr.contract' admission_type_id = fields.Many2one( string='Admission type', comodel_name='hr.contract.admission.type') labor_bond_type_id = fields.Many2one( string='Labor bond type', comodel_name='hr.contract.labor.bond.type') labor_regime_id = fields.Many2one( string='Labor regime', comodel_name='hr.contract.labor.regime') welfare_policy = fields.Selection( string='Welfare policy', selection=[ ('rgps', u'Regime Geral da Previdência Social'), ('rpps', u'Regime Próprio da Previdência Social')]) salary_unit = fields.Many2one(string='Salary Unity', comodel_name='hr.contract.salary.unit') weekly_hours = fields.Float(string='Weekly hours') monthly_hours = fields.Float(string='Monthly hours') union = fields.Char(string='Union') union_cnpj = fields.Char(string='Union CNPJ') union_entity_code = fields.Char(string='Union entity code') month_base_date = fields.Selection(string='Base date month', selection=MONTHS) discount_union_contribution = fields.Boolean( string='Discount union contribution in admission') resignation_date = fields.Date(string='Resignation date') resignation_cause_id = fields.Many2one( comodel_name='hr.contract.resignation.cause', string='Resignation cause') notice_of_termination_id = fields.Many2one( string='Notice of termination type', comodel_name='hr.contract.notice.termination' ) notice_of_termination_date = fields.Date( string='Notice of termination date') notice_of_termination_payment_date = fields.Date( string='Notice of termination payment date' ) by_death = fields.Char(string='By death', help='Death certificate/Process/Beneficiary') resignation_code = fields.Char(related='resignation_cause_id.code', invisible=True) @api.multi @api.constrains('union_cnpj') def _validate_union_cnpj(self): for record in self: if record.union_cnpj: if not fiscal.validate_cnpj(record.union_cnpj): raise ValidationError("Invalid union CNPJ!")