diff --git a/addons/hr_payroll/models/hr_contract.py b/addons/hr_payroll/models/hr_contract.py index 278f2537412..92131667af3 100644 --- a/addons/hr_payroll/models/hr_contract.py +++ b/addons/hr_payroll/models/hr_contract.py @@ -29,27 +29,3 @@ class HrContract(models.Model): """ structures = self.mapped('struct_id') return structures._get_parent_structure() if structures else self.env['hr.payroll.structure'] - - @api.multi - def get_attribute(self, code, attribute): - return self.env['hr.contract.advantage.template'].search([('code', '=', code)], limit=1)[attribute] - - @api.multi - def set_attribute_value(self, code, active): - for contract in self: - if active: - value = self.env['hr.contract.advantage.template'].search([('code', '=', code)], limit=1).default_value - contract[code] = value - else: - contract[code] = 0.0 - - -class HrContractAdvandageTemplate(models.Model): - _name = 'hr.contract.advantage.template' - _description = "Employee's Advantage on Contract" - - name = fields.Char('Name', required=True) - code = fields.Char('Code', required=True) - lower_bound = fields.Float('Lower Bound', help="Lower bound authorized by the employer for this advantage") - upper_bound = fields.Float('Upper Bound', help="Upper bound authorized by the employer for this advantage") - default_value = fields.Float('Default value for this advantage') diff --git a/addons/hr_payroll/security/ir.model.access.csv b/addons/hr_payroll/security/ir.model.access.csv index 484551f5cc4..d1a03b160a5 100644 --- a/addons/hr_payroll/security/ir.model.access.csv +++ b/addons/hr_payroll/security/ir.model.access.csv @@ -9,7 +9,5 @@ access_hr_payslip_input_user,hr.payslip.input.user,model_hr_payslip_input,hr_pay access_hr_payslip_worked_days_officer,hr.payslip.worked_days.officer,model_hr_payslip_worked_days,hr_payroll.group_hr_payroll_user,1,1,1,1 access_hr_payslip_run,hr.payslip.run,model_hr_payslip_run,hr_payroll.group_hr_payroll_manager,1,1,1,1 access_hr_salary_rule_user,hr.salary.rule.user,model_hr_salary_rule,hr_payroll.group_hr_payroll_user,1,1,1,1 -access_hr_contract_advantage_template,hr.contract.advantage.template.user,model_hr_contract_advantage_template,hr_payroll.group_hr_payroll_user,1,1,1,1 -access_hr_contract_advantage_template_hr_user,hr.contract.advantage.template.hr.user,model_hr_contract_advantage_template,hr.group_hr_user,1,0,0,0 access_hr_benefit,access_hr_benefit,model_hr_benefit,group_hr_payroll_user,1,1,1,1 -access_hr_benefit_type,access_hr_benefit_type,model_hr_benefit_type,group_hr_payroll_user,1,1,1,1 \ No newline at end of file +access_hr_benefit_type,access_hr_benefit_type,model_hr_benefit_type,group_hr_payroll_user,1,1,1,1 diff --git a/addons/hr_payroll/views/hr_contract_views.xml b/addons/hr_payroll/views/hr_contract_views.xml index 71acff3c13a..6a377e16744 100644 --- a/addons/hr_payroll/views/hr_contract_views.xml +++ b/addons/hr_payroll/views/hr_contract_views.xml @@ -24,58 +24,4 @@ - - - hr.contract.advantage.template.form - hr.contract.advantage.template - -
- -
-

- -

-
- - - - - - - - - - - - -
-
-
-
- - - hr.contract.advantage.template.tree - hr.contract.advantage.template - - - - - - - - - - - - - Contract Advantage Templates - hr.contract.advantage.template - form - - - \ No newline at end of file diff --git a/addons/l10n_be_hr_payroll/__manifest__.py b/addons/l10n_be_hr_payroll/__manifest__.py index 9070cc1dac9..1c6d178f8a4 100644 --- a/addons/l10n_be_hr_payroll/__manifest__.py +++ b/addons/l10n_be_hr_payroll/__manifest__.py @@ -23,5 +23,6 @@ Belgian Payroll Rules. 'data': [ 'views/l10n_be_hr_payroll_view.xml', 'data/l10n_be_hr_payroll_data.xml', + 'views/res_config_settings_views.xml', ], } diff --git a/addons/l10n_be_hr_payroll/data/l10n_be_hr_payroll_data.xml b/addons/l10n_be_hr_payroll/data/l10n_be_hr_payroll_data.xml index 534f12d8594..e0e5fdd39e9 100644 --- a/addons/l10n_be_hr_payroll/data/l10n_be_hr_payroll_data.xml +++ b/addons/l10n_be_hr_payroll/data/l10n_be_hr_payroll_data.xml @@ -533,63 +533,14 @@ result = -min(ip_amount * tax_rate, 11745) - - - Check Value Meal - meal_voucher_amount - 7.45 - - - Internet - internet - 38.0 - - - Mobile - mobile - 30.0 - - - Mobile + - mobile_plus - 50.0 - - - Net supplements - additional_net_amount - - - Net retained - retained_net_amount - - - Commission on target - commission_on_target - 0.0 - - - Fuel card - fuel_card - 150.0 - 0.0 - 500.0 - - - Leaves duration - holidays - 20.0 - 0.0 - 35.0 - - - Representation fees - representation_fees - 150.0 - - - Eco-checks - eco_checks - 250.0 - - + + + + + + + + + + diff --git a/addons/l10n_be_hr_payroll/models/__init__.py b/addons/l10n_be_hr_payroll/models/__init__.py index 6a4d72df3f6..78456ae56a1 100644 --- a/addons/l10n_be_hr_payroll/models/__init__.py +++ b/addons/l10n_be_hr_payroll/models/__init__.py @@ -2,3 +2,4 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. from . import l10n_be_hr_payroll +from . import res_config_settings diff --git a/addons/l10n_be_hr_payroll/models/l10n_be_hr_payroll.py b/addons/l10n_be_hr_payroll/models/l10n_be_hr_payroll.py index 312ae7c25b3..e5e65390304 100644 --- a/addons/l10n_be_hr_payroll/models/l10n_be_hr_payroll.py +++ b/addons/l10n_be_hr_payroll/models/l10n_be_hr_payroll.py @@ -41,35 +41,27 @@ class HrContract(models.Model): # Advantages commission_on_target = fields.Monetary(string="Commission on Target", - default=lambda self: self.get_attribute('commission_on_target', 'default_value'), track_visibility="onchange", help="Monthly gross amount that the employee receives if the target is reached.") fuel_card = fields.Monetary(string="Fuel Card", - default=lambda self: self.get_attribute('fuel_card', 'default_value'), track_visibility="onchange", help="Monthly amount the employee receives on his fuel card.") internet = fields.Monetary(string="Internet", - default=lambda self: self.get_attribute('internet', 'default_value'), track_visibility="onchange", help="The employee's internet subcription will be paid up to this amount.") representation_fees = fields.Monetary(string="Representation Fees", - default=lambda self: self.get_attribute('representation_fees', 'default_value'), track_visibility="onchange", help="Monthly net amount the employee receives to cover his representation fees.") mobile = fields.Monetary(string="Mobile", - default=lambda self: self.get_attribute('mobile', 'default_value'), track_visibility="onchange", help="The employee's mobile subscription will be paid up to this amount.") mobile_plus = fields.Monetary(string="International Communication", - default=lambda self: self.get_attribute('mobile_plus', 'default_value'), track_visibility="onchange", help="The employee's mobile subscription for international communication will be paid up to this amount.") meal_voucher_amount = fields.Monetary(string="Meal Vouchers", - default=lambda self: self.get_attribute('meal_voucher_amount', 'default_value'), track_visibility="onchange", help="Amount the employee receives in the form of meal vouchers per worked day.") holidays = fields.Float(string='Legal Leaves', - default=lambda self: self.get_attribute('holidays', 'default_value'), help="Number of days of paid leaves the employee gets per year.") holidays_editable = fields.Boolean(string="Editable Leaves", default=True) holidays_compensation = fields.Monetary(compute='_compute_holidays_compensation', string="Holidays Compensation") @@ -82,7 +74,6 @@ class HrContract(models.Model): track_visibility="onchange", help="Monthly net amount that is retained on the employee's salary.") eco_checks = fields.Monetary("Eco Vouchers", - default=lambda self: self.get_attribute('eco_checks', 'default_value'), help="Yearly amount the employee receives in the form of eco vouchers.") ip = fields.Boolean(default=False, track_visibility="onchange") ip_wage_rate = fields.Float(string="IP percentage", help="Should be between 0 and 100 %") @@ -227,19 +218,12 @@ class HrContract(models.Model): if self.mobile_plus and not self.mobile: raise ValidationError(_('You should have a mobile subscription to select an international communication amount.')) - def _get_internet_amount(self, has_internet): - if has_internet: - return self.get_attribute('internet', 'default_value') - else: - return 0.0 - def _get_mobile_amount(self, has_mobile, international_communication): if has_mobile and international_communication: - return self.get_attribute('mobile', 'default_value') + self.get_attribute('mobile_plus', 'default_value') - elif has_mobile: - return self.get_attribute('mobile', 'default_value') - else: - return 0.0 + return self.env['ir.default'].sudo().get('hr.contract', 'mobile') + self.env['ir.default'].sudo().get('hr.contract', 'mobile_plus') + if has_mobile: + return self.env['ir.default'].sudo().get('hr.contract', 'mobile') + return 0.0 def _get_gross_from_employer_costs(self, yearly_cost): contract = self diff --git a/addons/l10n_be_hr_payroll/models/res_config_settings.py b/addons/l10n_be_hr_payroll/models/res_config_settings.py new file mode 100644 index 00000000000..ee6bcb33004 --- /dev/null +++ b/addons/l10n_be_hr_payroll/models/res_config_settings.py @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- + +from odoo import api, fields, models, _ + + +class ResConfigSettings(models.TransientModel): + _inherit = 'res.config.settings' + + default_holidays = fields.Float(string="Legal Leaves", default_model="hr.contract") + default_commission_on_target = fields.Float(string="Commission on Target", default_model="hr.contract") + default_fuel_card = fields.Float(string="Fuel Card", default_model="hr.contract") + default_representation_fees = fields.Float(string="Representation Fees", default_model="hr.contract") + default_internet = fields.Float(string="Internet", default_model="hr.contract") + default_mobile = fields.Float(string="Mobile", default_model="hr.contract") + default_mobile_plus = fields.Float(string="International Communication", default_model="hr.contract") + default_meal_voucher_amount = fields.Float(string="Meal Vouchers", default_model="hr.contract") + default_eco_checks = fields.Float(string="Eco Vouchers", default_model="hr.contract") diff --git a/addons/l10n_be_hr_payroll/views/res_config_settings_views.xml b/addons/l10n_be_hr_payroll/views/res_config_settings_views.xml new file mode 100644 index 00000000000..f65c72e610e --- /dev/null +++ b/addons/l10n_be_hr_payroll/views/res_config_settings_views.xml @@ -0,0 +1,77 @@ + + + + res.config.settings.view.form.inherit.l10n_be_hr_payroll + res.config.settings + + + + +

Belgian Locatization

+
+
+
+
+
+
+
+ + + +