Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[14.0] [ADD] payroll_rule_time_parameter / [IMP] payroll: remove rule_parameters from payroll & [FIX] payslip and payslips objects #87

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions payroll/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,17 @@
{
"name": "Payroll",
"version": "14.0.5.5.4",
"category": "Human Resources",
"category": "Payroll",
"website": "https://github.com/OCA/payroll",
"sequence": 38,
"summary": "Manage your employee payroll records",
"license": "LGPL-3",
"author": "Odoo SA, Odoo Community Association (OCA)",
"depends": ["hr_contract", "hr_holidays", "mail"],
"depends": [
"hr_contract",
"hr_holidays",
"mail",
],
"data": [
"security/hr_payroll_security.xml",
"security/ir.model.access.csv",
Expand All @@ -27,7 +31,6 @@
"views/hr_payslip_views.xml",
"views/hr_payslip_run_views.xml",
"views/hr_employee_views.xml",
"views/hr_rule_parameter_views.xml",
"views/report_contributionregister.xml",
"views/report_payslip.xml",
"views/report_payslipdetails.xml",
Expand Down
23 changes: 23 additions & 0 deletions payroll/migrations/14.0.6.0.0/pre-migration.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
from openupgradelib import openupgrade

from odoo.addons.payroll.migrations.move_records import move_records


def rename_tables(cr):
openupgrade.rename_tables(
cr,
[
("hr_rule_parameter", None),
("hr_rule_parameter_value", None),
],
)


@openupgrade.migrate()
def migrate(env, version):
cr = env.cr
module = env["ir.module.module"].search([("name", "=", "base_time_parameter")])
if module.exists() and module.state == "installed":
move_records(cr, legacy=False)
else:
rename_tables(cr)
66 changes: 66 additions & 0 deletions payroll/migrations/move_records.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
from openupgradelib import openupgrade

from odoo import SUPERUSER_ID, api


@openupgrade.logging()
def move_records(cr, legacy):
"""
hr.rule.parameter -> base.time.parameter
hr.rule.parameter.value -> base.time.parameter.version
(with new id for many2one base.time.parameter)
"""
env = api.Environment(cr, SUPERUSER_ID, {})
payslip_model_id = env["ir.model"].search([("model", "=", "hr.payslip")]).id

name = "openupgrade_legacy_14_0_" if legacy else ""
hr_rule_parameter = name + "hr_rule_parameter"
hr_rule_parameter_value = name + "hr_rule_parameter_value"

sql_select_parameters = """
SELECT id, name, code, description, company_id, country_id, 'text'
FROM {hr_rule_parameter}
""".format(
hr_rule_parameter=hr_rule_parameter
)
openupgrade.logged_query(cr, sql_select_parameters)
parameters = [(p[0], p[1:] + (payslip_model_id,)) for p in cr.fetchall()]

sql_insert_parameters = """
INSERT INTO base_time_parameter (
name, code, description, company_id, country_id, type, model_id
)
VALUES {parameters}
RETURNING id;
""".format(
parameters=", ".join([str(p[1]).replace("None", "null") for p in parameters]),
)
openupgrade.logged_query(cr, sql_insert_parameters)
new_parameters = cr.fetchall()
id_old_new = {}
for i in range(len(parameters)):
id_old_new[parameters[i][0]] = new_parameters[i][0]

sql_select_versions = """
SELECT pv.rule_parameter_id, p.company_id, pv.code, pv.date_from, pv.parameter_value
FROM {hr_rule_parameter_value} pv JOIN {hr_rule_parameter} p
ON pv.rule_parameter_id = p.id;
""".format(
hr_rule_parameter_value=hr_rule_parameter_value,
hr_rule_parameter=hr_rule_parameter,
)
openupgrade.logged_query(cr, sql_select_versions)
versions = [
(id_old_new[v[0]], v[1], v[2], v[3].strftime("%Y-%m-%d"), v[4])
for v in cr.fetchall()
]

sql_insert_versions = """
INSERT INTO base_time_parameter_version (
parameter_id, company_id, code, date_from, value_text
)
VALUES {versions}
""".format(
versions=", ".join([str(v) for v in versions])
)
openupgrade.logged_query(cr, sql_insert_versions)
1 change: 0 additions & 1 deletion payroll/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,3 @@
from . import hr_payslip_worked_days
from . import hr_payslip_run
from . import res_config_settings
from . import hr_rule_parameter
9 changes: 4 additions & 5 deletions payroll/models/base_browsable.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
# Part of Odoo. See LICENSE file for full copyright and licensing details.

import logging

from odoo import fields

_logger = logging.getLogger(__name__)


class BaseBrowsableObject(object):
def __init__(self, vals_dict):
Expand Down Expand Up @@ -95,8 +99,3 @@ def sum(self, code, from_date, to_date=None):
)
res = self.env.cr.fetchone()
return res and res[0] or 0.0

def rule_parameter(self, code):
return self.env["hr.rule.parameter"]._get_parameter_from_code(
code, self.dict.date_to
)
7 changes: 5 additions & 2 deletions payroll/models/hr_payslip.py
Original file line number Diff line number Diff line change
Expand Up @@ -511,7 +511,7 @@ def _get_baselocaldict(self, contracts):
line.code: line for line in self.input_line_ids if line.code
}
localdict = {
"payslip": Payslips(self.employee_id.id, self, self.env),
"payslips": Payslips(self.employee_id.id, self, self.env),
nimarosa marked this conversation as resolved.
Show resolved Hide resolved
"worked_days": WorkedDays(self.employee_id.id, worked_days_dict, self.env),
"inputs": InputLine(self.employee_id.id, input_lines_dict, self.env),
"payroll": BrowsableObject(
Expand Down Expand Up @@ -618,7 +618,10 @@ def get_lines_dict(self):
)
# set up localdict with current contract and employee values
localdict = dict(
baselocaldict, employee=contract.employee_id, contract=contract
baselocaldict,
employee=contract.employee_id,
contract=contract,
payslip=payslip,
nimarosa marked this conversation as resolved.
Show resolved Hide resolved
)
for rule in payslip._get_salary_rules():
localdict = rule._reset_localdict_values(localdict)
Expand Down
74 changes: 0 additions & 74 deletions payroll/models/hr_rule_parameter.py

This file was deleted.

6 changes: 4 additions & 2 deletions payroll/models/hr_salary_rule.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,8 @@ class HrSalaryRule(models.Model):
default="""
# Available variables:
#-------------------------------
# payslip: object containing the payslips
# payslip: hr.payslip object
# payslips: object containing payslips (browsable)
# employee: hr.employee object
# contract: hr.contract object
# rules: object containing the rules code (previously computed)
Expand Down Expand Up @@ -121,7 +122,8 @@ class HrSalaryRule(models.Model):
default="""
# Available variables:
#-------------------------------
# payslip: object containing the payslips
# payslip: hr.payslip object
# payslips: object containing payslips (browsable)
# employee: hr.employee object
# contract: hr.contract object
# rules: object containing the rules code (previously computed)
Expand Down
34 changes: 34 additions & 0 deletions payroll/readme/HISTORY.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
14.0.6.0.0 (2022-11-04)
~~~~~~~~~~~~~~~~~~~~~~~

* #87 payroll_rule_time_parameter: remove from payroll
* Removed hr.rule.parameter & hr.rule.parameter.value (see payroll_rule_time_parameter)

14.0.5.3.0 (2022-09-13)
~~~~~~~~~~~~~~~~~~~~~~~

* #67 Merge payslip_cancel and payslip_change_state in base module
* Merged hr_payroll_cancel, adding a setting to enable this feature (by default disabled).
* Merged hr_payroll_change_state (there is no setting to disable this feature).

14.0.5.0.0 (2022-08-29)
~~~~~~~~~~~~~~~~~~~~~~~

* #60 Improve views, add child functionalities, allow compute of name

14.0.4.0.0 (2022-08-17)
~~~~~~~~~~~~~~~~~~~~~~~

* #45 Remove contract_advantage_template model and new module
* Removed hr.contract.advantage.template (moved to payroll_contract_advantages)

14.0.3.0.0 (2022-08-15)
~~~~~~~~~~~~~~~~~~~~~~~

* #47 payslip refactoring

14.0.2.0.0 (2022-07-07)
~~~~~~~~~~~~~~~~~~~~~~~

* #31 major-rule-parameters-function
* Added hr.rule.parameter & hr.rule.parameter.value
4 changes: 0 additions & 4 deletions payroll/security/ir.model.access.csv
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,4 @@ access_hr_salary_rule_user,hr.salary.rule user,model_hr_salary_rule,payroll.grou
access_hr_salary_rule_manager,hr.salary.rule manager,model_hr_salary_rule,payroll.group_payroll_manager,1,1,1,1
access_hr_payslip_batch_employees_transient,hr.payslip.employees.batch,model_hr_payslip_employees,hr.group_hr_user,1,1,1,0
access_hr_payslip_lines_contribution_register_transient,payslip.lines.contribution.register,model_payslip_lines_contribution_register,hr.group_hr_user,1,1,1,0
access_hr_rule_parameter_manager,access_hr_rule_parameter_manager,model_hr_rule_parameter,payroll.group_payroll_manager,1,1,1,1
access_hr_rule_parameter_user,access_hr_rule_parameter_user,model_hr_rule_parameter,hr.group_hr_user,1,0,0,0
access_hr_rule_parameter_value_manager,access_hr_rule_parameter_value_manager,model_hr_rule_parameter_value,payroll.group_payroll_manager,1,1,1,1
access_hr_rule_parameter_value_user,access_hr_rule_parameter_value_user,model_hr_rule_parameter_value,hr.group_hr_user,1,0,0,0
access_hr_payslip_change_state,access_hr_payslip_change_state,model_hr_payslip_change_state,base.group_user,1,1,1,0
1 change: 1 addition & 0 deletions payroll/tests/test_browsable_object.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Part of Odoo. See LICENSE file for full copyright and licensing details.


from odoo.addons.payroll.models.hr_payslip import BaseBrowsableObject, BrowsableObject

from .common import TestPayslipBase
Expand Down
70 changes: 0 additions & 70 deletions payroll/views/hr_rule_parameter_views.xml

This file was deleted.

Loading