|
<?php |
|
|
|
public function relatorio_jornada() { |
|
$req = $this->request->is('post'); |
|
|
|
if ($req) { |
|
$newPost = $this->request->data; |
|
|
|
$data_init = $newPost['Jornada']['dt_inicio']; |
|
$data_finit = $novo['Jornada']['dt_final']; |
|
$motorista_id = id$novo['Jornada']['motorista_id']; |
|
|
|
$cond = array(); |
|
|
|
$dt_inicio = $this->DtBrEn($data_init); |
|
$dt_fim = $this->DtBrEn($data_finit); |
|
|
|
|
|
|
|
$cond['id_motorista'] = (int) $motorista_id; |
|
$cond['$or'][]['evento'] = array('$regex' => new MongoRegex('R/i')); |
|
$cond['$or'][]['evento'] = array('$regex' => new MongoRegex('D/i')); |
|
|
|
$cond['dt_inicio']['$gte'] = new MongoDate(strtotime($dt_inicio)); |
|
$cond['dt_final']['$lte'] = new MongoDate(strtotime($dt_fim)); |
|
|
|
$jornadas = $this->Mongo->db->jornadas->find($cond)->sort(array('dt_inicio' => 1)); |
|
$jornadas = $this->Mongo->paraArray($jornadas); |
|
|
|
$trabalho_dia = array(); |
|
$total_mes = array(); |
|
|
|
|
|
$tempo = $value['dt_final']->sec - $value['dt_inicio']->sec; |
|
|
|
|
|
foreach ($jornadas as $k => $value) { |
|
|
|
if ($k == 0) { |
|
$dia = date('j', $value['dt_inicio']->sec); |
|
} |
|
|
|
if ($value['evento'] == 'P-[IN] Interjornada' || $value['evento'] == 'P-[DS] Descanso Semanal') { |
|
|
|
$dia++; |
|
} |
|
|
|
if ($value['evento'] == 'R-[TE] Tempo de Espera') { |
|
|
|
(!empty($trabalho_dia[$dia]['tempo_espera']['total'])) ? $trabalho_dia[$dia]['tempo_espera']['total'] += $tempo : $trabalho_dia[$dia]['tempo_espera']['total'] = $tempo; |
|
|
|
(!empty($trabalho_dia[$dia]['tempo_espera']['total'])) ? $trabalho_dia[$dia]['tempo_espera']['inicio'] = date('H:i', $value['dt_inicio']->sec) : ''; |
|
|
|
(!empty($total_mes['tempo_espera'])) ? $total_mes['tempo_espera'] += $tempo : $total_mes['tempo_espera'] = $tempo; |
|
|
|
|
|
}else if ($value['evento'] == 'R-[TR] Tempo de Reserva') { |
|
|
|
|
|
(!empty($trabalho_dia[$dia]['tempo_reserva']['total'])) ? $trabalho_dia[$dia]['tempo_reserva']['total'] += $tempo : $trabalho_dia[$dia]['tempo_reserva']['total'] = $tempo; |
|
|
|
(!empty($trabalho_dia[$dia]['tempo_reserva']['total'])) ? $trabalho_dia[$dia]['tempo_reserva']['inicio'] = date('H:i', $value['dt_inicio']->sec) : ''; |
|
(!empty($total_mes['tempo_reserva'])) ? $total_mes['tempo_reserva'] += $tempo : $total_mes['tempo_reserva'] = $tempo; |
|
|
|
|
|
}else if ($value['evento'] == 'R-[CE] Tempo de Coleta ou Entrada') { |
|
|
|
|
|
(!empty($trabalho_dia[$dia]['tempo_coleta']['total'])) ? $trabalho_dia[$dia]['tempo_coleta']['total'] += $tempo : $trabalho_dia[$dia]['tempo_coleta']['total'] = $tempo; |
|
(!empty($trabalho_dia[$dia]['tempo_coleta']['total'])) ? $trabalho_dia[$dia]['tempo_coleta']['inicio'] = date('H:i', $value['dt_inicio']->sec) : ''; |
|
(!empty($total_mes['tempo_coleta'])) ? $total_mes['tempo_coleta'] += $tempo : $total_mes['tempo_coleta'] = $tempo; |
|
|
|
|
|
}else if ($value['evento'] == 'R-[PA] Parado Acidente') { |
|
|
|
|
|
(!empty($trabalho_dia[$dia]['parado_acidente']['total'])) ? $trabalho_dia[$dia]['parado_acidente']['total'] += $tempo : $trabalho_dia[$dia]['parado_acidente']['total'] = $tempo; |
|
(!empty($trabalho_dia[$dia]['parado_acidente']['total'])) ? $trabalho_dia[$dia]['parado_acidente']['inicio'] = date('H:i', $value['dt_inicio']->sec) : ''; |
|
(!empty($total_mes['parado_acidente'])) ? $total_mes['parado_acidente'] += $tempo : $total_mes['parado_acidente'] = $tempo; |
|
|
|
}else if ($value['evento'] == 'R-[PA] Parado Fiscalização') { |
|
|
|
|
|
(!empty($trabalho_dia[$dia]['parado_fiscalizacao']['total'])) ? $trabalho_dia[$dia]['parado_fiscalizacao']['total'] += $tempo : $trabalho_dia[$dia]['parado_fiscalizacao']['total'] = $tempo; |
|
(!empty($trabalho_dia[$dia]['parado_fiscalizacao']['total'])) ? $trabalho_dia[$dia]['parado_fiscalizacao']['inicio'] = date('H:i', $value['dt_inicio']->sec) : ''; |
|
(!empty($total_mes['parado_fiscalizacao'])) ? $total_mes['parado_fiscalizacao'] += $tempo : $total_mes['parado_fiscalizacao'] = $tempo; |
|
|
|
|
|
}else if ($value['evento'] == 'D-[IT] Intrajornada') { |
|
|
|
|
|
(!empty($trabalho_dia[$dia]['intrajornada']['total'])) ? $trabalho_dia[$dia]['intrajornada']['total'] += $tempo : $trabalho_dia[$dia]['intrajornada']['total'] = $tempo; |
|
(!empty($trabalho_dia[$dia]['intrajornada']['total'])) ? $trabalho_dia[$dia]['intrajornada']['inicio'] = date('H:i', $value['dt_inicio']->sec) : ''; |
|
(!empty($total_mes['intrajornada'])) ? $total_mes['intrajornada'] += $tempo : $total_mes['intrajornada'] = $tempo; |
|
|
|
|
|
}else if ($value['evento'] == 'R-[AD] A Disposição') { |
|
|
|
(!empty($trabalho_dia[$dia]['disposicao']['total'])) ? $trabalho_dia[$dia]['disposicao']['total'] += $tempo : $trabalho_dia[$dia]['disposicao']['total'] = $tempo; |
|
|
|
(!empty($trabalho_dia[$dia]['disposicao']['total'])) ? $trabalho_dia[$dia]['disposicao']['inicio'] = date('H:i', $value['dt_inicio']->sec) : ''; |
|
|
|
(!empty($total_mes['disposicao'])) ? $total_mes['disposicao'] += $tempo : $total_mes['disposicao'] = $tempo; |
|
} |
|
}//fim foreach |
|
|
|
|
|
if (empty($trabalho_dia)) { |
|
|
|
$this->Session->setFlash('Não há nenhum evento de Jornada neste mês.'); |
|
$this->redirect('/planejamentos/relatorio_jornada'); |
|
} |
|
|
|
$this->set('jornadas', $trabalho_dia); |
|
$this->set('mensal', $total_mes); |
|
|
|
}//fim if monttro |
|
|
|
$this->loadModel('Motorista'); |
|
$cond_motorista = array(); |
|
$cond_motorista['conditions']['Motorista.ativo'] = 1; |
|
$this->set('motoristas', $this->Motorista->find('list', $cond_motorista)); |
|
|
|
} |