open-synergy/opnsynid-hr

View on GitHub
gamification_point/models/gamification_goal.py

Summary

Maintainability
B
6 hrs
Test Coverage
# -*- coding: utf-8 -*-
# Copyright 2019 OpenSynergy Indonesia
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from openerp import api, fields, models


class GamificationGoal(models.Model):
    _inherit = "gamification.goal"

    @api.multi
    @api.depends(
        "definition_id",
        "state",
        "closed",
        "line_id",
        "current",
    )
    def _compute_point(self):
        for rec in self:
            if rec.state == "reached":
                if rec.line_id.reach_point_method == "fixed":
                    rec.point = rec.line_id.reach_point
                elif rec.line_id.reach_point_method == "multiply":
                    rec.point = rec.line_id.reach_point * rec.current
            elif rec.state == "failed":
                if rec.line_id.fail_point_method == "fixed":
                    rec.point = rec.line_id.fail_point
                elif rec.line_id.fail_point_method == "multiply":
                    rec.point = rec.line_id.fail_point * rec.current

    point = fields.Float(
        string="Point",
        required=True,
        default=0.0,
        compute="_compute_point",
        store=True,
    )