146
146
def calcular_sobretiempos_aux(self, cr, uid, hpd1, hpd2, dia, hora_entrada, hora_salida, feriado=[None,None]):
147
147
sobretiempos = {}
148
148
days = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday']
149
aux_start_id = self.pool.get('hr.hours.per.day').read(cr, uid, hpd1)[days[dia]+'_hours_id'][0]
149
aux_start_id = self.pool.get('hr.hours.per.day').read(cr, uid, hpd1)[days[dia - 1]+'_hours_id'][0]
150
150
aux_start = self.pool.get('hr.hours').browse(cr, uid, aux_start_id).hour_end
151
151
parametros_turnos_obj = self.pool.get('horas.extras.parametros.turnos')
152
152
turno = parametros_turnos_obj.search_parameters_overtime(cr, uid, hpd1, dia, hora_entrada, hora_salida)
153
turno2 = parametros_turnos_obj.search_parameters_overtime(cr, uid, hpd2, dia+1, hora_entrada, hora_salida)
153
turno2 = parametros_turnos_obj.search_parameters_overtime(cr, uid, hpd2, 1 if dia >= 7 else (dia + 1), hora_entrada, hora_salida)
154
154
if turno or turno2:
155
155
val1 = parametros_turnos_obj.calculte_overtime(cr, uid, hpd1, dia, hora_entrada, '23:59:59', feriado=feriado[0])
156
val2 = parametros_turnos_obj.calculte_overtime(cr, uid, hpd2, dia+1 if dia < 7 else 1, aux_start, hora_salida if hora_salida > aux_start else aux_start, feriado=feriado[1])
156
val2 = parametros_turnos_obj.calculte_overtime(cr, uid, hpd2, 1 if dia >= 7 else (dia + 1), '00:00:00', hora_salida, feriado=feriado[1])
157
157
total_acum = [val1, val2]
158
158
for t in total_acum:
213
213
if date_start == date_end:
214
214
dia = self.day_week(date_end)
215
215
sobretiempos = parametros_turnos_obj.calculte_overtime(cr, uid, hr_hours_per_day_id, dia, hora_entrada, hora_salida, feriado=dia1_feriado)
216
self.calcular_feriados(cr, uid, ids, date_start, emp_id, hora_entrada, hora_salida, sobretiempos, shift_id, feriado=dia1_feriado)
216
# self.calcular_feriados(cr, uid, ids, date_start, emp_id, hora_entrada, hora_salida, sobretiempos, shift_id, feriado=dia1_feriado)
218
218
dia = self.day_week(date_start)
219
219
if hora_entrada >= hora_salida:
220
220
hr_hours_per_day_id_2 = self.get_hours_per_day_id(date_end, shift_id)
221
221
sobretiempos = self.calcular_sobretiempos_aux(cr, uid, hr_hours_per_day_id, hr_hours_per_day_id_2, dia, hora_entrada, hora_salida, feriado=[dia1_feriado, dia2_feriado])
222
#~ print sobretiempos
223
222
#~ self.calcular_feriados(cr, uid, ids, date_start, emp_id, hora_entrada, '23:59:59', sobretiempos, shift_id, feriado=dia1_feriado)
224
223
#~ self.calcular_feriados(cr, uid, ids, date_end, emp_id, '00:00:00', hora_salida, sobretiempos, shift_id, feriado=dia2_feriado)
226
225
dia_1 = self.day_week(date_start)
227
226
dia_2 = self.day_week(date_end)
228
dates = range(dia_1, dia_2+1)
227
dates = range(dia_1, dia_2) if dia_2 <= 7 else [dia_1, dia_2]
230
229
for dia in dates:
231
230
val = parametros_turnos_obj.calculte_overtime(cr, uid, hr_hours_per_day_id, dia, hora_entrada, hora_salida)