Commit 55158c32 by Yvon

comments

parent 2258452b
...@@ -9,9 +9,31 @@ _logger = logging.getLogger(__name__) ...@@ -9,9 +9,31 @@ _logger = logging.getLogger(__name__)
class ShiftCounterEvent(models.Model): class ShiftCounterEvent(models.Model):
_inherit = 'shift.counter.event' _inherit = 'shift.counter.event'
#voir si ce warning : 2023-10-12 19:30:09,651 4895 WARNING odoo openerp.models: shift.registration.read() with unknown field 'final_standard_point'
#est causé par ce bout de code
def _alter_point_event_depending_on_makeups_total_count(self, vals): def _alter_point_event_depending_on_makeups_total_count(self, vals):
"""
This code helps keeping the consistency between std_counter and makeup total count.
It solves very specific discrepancy occuring when following conditions are met :
A. the total makeup count (makeups_to_do + makeups_to_come) is more than 2 and std_counter = -2
B. some action increments std_counter
In that case, the std_counter becomes -1 whereas we would like it to be -2.
The idea behind the restriction to the [std_counter = -2] situation is that discrepancy
is always due to the fact that we are adding more makeups to a member where std_counter = -2.
TODO : take into account historically corrupted data where there is discrepancy with std_counter = -1
Below typical scenario where A and B are met (there are probably more than those two !) :
1. after a makeup service where a member has been present is closed [TODO :we are actually doing the right thing there now so we do it twice... we should simplify]
2. after a bdm admin increments the makeup counter
TODO : check that this process is the one we want in all other cases
Note that all of this is only valid in the on std shift members as makeups are not supposed
to be use on ftop shift members.
TODO : WARNING odoo openerp.models: shift.registration.read() with unknown field 'final_standard_point' : is it caused by this piece of code ?
TODO : understand difference in relative position of update_partner_target_status and actual value write in "CREATE" and "WRITE" methods below
TODO : _update_partner_target_status looks similar to run_process_target_status... is it necessary to call run_process_target_status in update_members_makeups_core ?
"""
try: try:
if vals['point_qty'] > 0: if vals['point_qty'] > 0:
res_partner = self.env['res.partner'].search([('id', '=', vals['partner_id'])]) res_partner = self.env['res.partner'].search([('id', '=', vals['partner_id'])])
...@@ -67,6 +89,7 @@ class ShiftCounterEvent(models.Model): ...@@ -67,6 +89,7 @@ class ShiftCounterEvent(models.Model):
# don't block process if an error occurs here # don't block process if an error occurs here
_logger.error("Error during _update_partner_target_status : %s", str(e)) _logger.error("Error during _update_partner_target_status : %s", str(e))
@api.model @api.model
def write(self, vals): def write(self, vals):
self._alter_point_event_depending_on_makeups_total_count(vals) self._alter_point_event_depending_on_makeups_total_count(vals)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment