mirror of
https://github.com/bringout/oca-technical.git
synced 2026-04-18 12:52:05 +02:00
Initial commit: OCA Technical packages (595 packages)
This commit is contained in:
commit
2cc02aac6e
24950 changed files with 2318079 additions and 0 deletions
|
|
@ -0,0 +1,74 @@
|
|||
import ast
|
||||
|
||||
from odoo import _, api, fields, models
|
||||
from odoo.exceptions import UserError
|
||||
|
||||
|
||||
class HrSalaryRuleParameterValue(models.Model):
|
||||
_name = "hr.rule.parameter.value"
|
||||
_description = "Salary Rule Parameter Value"
|
||||
_order = "date_from desc"
|
||||
|
||||
rule_parameter_id = fields.Many2one(
|
||||
"hr.rule.parameter", required=True, ondelete="cascade"
|
||||
)
|
||||
code = fields.Char(related="rule_parameter_id.code", store=True, readonly=True)
|
||||
date_from = fields.Date(string="Date From", required=True)
|
||||
parameter_value = fields.Text(help="Python Code")
|
||||
country_id = fields.Many2one(related="rule_parameter_id.country_id")
|
||||
company_id = fields.Many2one(related="rule_parameter_id.company_id")
|
||||
|
||||
_sql_constraints = [
|
||||
(
|
||||
"_unique",
|
||||
"unique (rule_parameter_id, date_from)",
|
||||
"Two rules parameters with the same code cannot start the same day",
|
||||
),
|
||||
]
|
||||
|
||||
|
||||
class HrSalaryRuleParameter(models.Model):
|
||||
_name = "hr.rule.parameter"
|
||||
_description = "Salary Rule Parameter"
|
||||
|
||||
name = fields.Char(required=True)
|
||||
code = fields.Char(required=True)
|
||||
description = fields.Text("Description")
|
||||
country_id = fields.Many2one(
|
||||
"res.country",
|
||||
string="Country",
|
||||
default=lambda self: self.env.company.country_id,
|
||||
)
|
||||
parameter_version_ids = fields.One2many(
|
||||
"hr.rule.parameter.value", "rule_parameter_id", string="Versions"
|
||||
)
|
||||
company_id = fields.Many2one(
|
||||
"res.company", "Company", required=True, default=lambda self: self.env.company
|
||||
)
|
||||
|
||||
@api.model
|
||||
def _get_parameter_from_code(self, code, date=None):
|
||||
if not date:
|
||||
date = fields.Date.today()
|
||||
rule_parameter = self.env["hr.rule.parameter.value"].search(
|
||||
[
|
||||
("code", "=", code),
|
||||
("date_from", "<=", date),
|
||||
("company_id", "=", self.env.company.id),
|
||||
],
|
||||
limit=1,
|
||||
)
|
||||
if rule_parameter:
|
||||
return ast.literal_eval(rule_parameter.parameter_value)
|
||||
else:
|
||||
raise UserError(
|
||||
_("No rule parameter with code '%s' was found for %s ") % (code, date)
|
||||
)
|
||||
|
||||
_sql_constraints = [
|
||||
(
|
||||
"_unique",
|
||||
"unique (code, company_id)",
|
||||
"Two rule parameters cannot have the same code.",
|
||||
),
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue