Commit 03edb93e by François C.

Manage moved shift registration state modification (shift registration which are…

Manage moved shift registration state modification (shift registration which are not related with shift_template_registration)
parent 6d61deab
......@@ -7,7 +7,7 @@
{
'name': 'Coop Shift',
'version': '9.0.7.0.0',
'version': '9.0.7.0.1',
'category': 'Tools',
'author': 'Julien WESTE, Sylvain LE GAL, Cyril Gaspard, La Louve',
'website': 'http://www.lalouve.net',
......
......@@ -104,13 +104,14 @@ class ShiftLeaveWizard(models.TransientModel):
existed_line = line_obj.search([
('registration_id', '=', registration_id),
('date_begin', '=', leave_s_date),
('state', '!=', 'waiting'),
('state', 'not in', ['waiting', 'cancel']),
])
if existed_line:
existed_line.with_context(bypass_leave_change_check=True)\
.write({'state': 'waiting', 'leave_id': leave.id})
else:
# Create new registration lines (type 'waiting')
try:
line_obj.create({
'registration_id': registration_id,
'date_begin': leave_s_date,
......@@ -118,5 +119,18 @@ class ShiftLeaveWizard(models.TransientModel):
'state': 'waiting',
'leave_id': leave.id,
})
except:
# may occur when a shift registration has been canceled
pass
# Need to consider shift_registration made before member ask for leave
sr_obj = self.env['shift.registration']
shift_regs_to_modify = sr_obj.search([
('partner_id', '=', self.partner_id.id),
('state', 'not in', ['waiting', 'cancel']),
('date_begin', '>', leave_s_date),
('date_begin', '<=', leave_e_date)
])
for sr in shift_regs_to_modify:
sr.write({'state': 'waiting'})
leave.state = 'done'
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