Created
August 5, 2015 01:45
-
-
Save anonymous/0ba8fad0a765c67913a6 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
public function relatorio_jornada() { | |
if ($this->request->is('post')) { | |
$novo = $this->request->data; | |
$cond = array(); | |
$dt_inicio = $this->DtBrEn($novo['Jornada']['dt_inicio']); | |
$dt_fim = $this->DtBrEn($novo['Jornada']['dt_final']); | |
$cond['$or'][]['evento'] = array('$regex' => new MongoRegex('R/i')); | |
$cond['$or'][]['evento'] = array('$regex' => new MongoRegex('D/i')); | |
$cond['id_motorista'] = (int) $novo['Jornada']['motorista_id']; | |
$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(); | |
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++; | |
} | |
$tempo = $value['dt_final']->sec - $value['dt_inicio']->sec; | |
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; | |
} | |
} | |
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); | |
} | |
$this->loadModel('Motorista'); | |
$cond_motorista = array(); | |
$cond_motorista['conditions']['Motorista.ativo'] = 1; | |
$this->set('motoristas', $this->Motorista->find('list', $cond_motorista)); | |
} | |
?> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Segue o teste: | |
Tabelas de Saídas: | |
Saída1 | |
Data | Produto | Qtd (campo qtd) | |
06/15 | Produto1 | 8 | |
06/15 | Produto2 | 15 | |
... | |
Saída2 (Quantos produtos foram vendidos?) | |
Produto | Total (soma do campo qtd) | |
Produto1 | 8 | |
Produto2 | 10 | |
... | |
Saída3 (somente 06/15 e 07/15) (Quantas vendas por mês?) | |
Data | Total (soma do campo qtd) | |
06/15 | 13 | |
07/15 | 11 | |
... |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$teste = array(); | |
$teste['06/15']['produtos'][0]['nome'] = "Produto 1"; | |
$teste['06/15']['produtos'][0]['qtd'] = 8; | |
$teste['06/15']['produtos'][1]['nome'] = "Produto 2"; | |
$teste['06/15']['produtos'][1]['qtd'] = 5; | |
$teste['07/15']['produtos'][0]['nome'] = "Produto 3"; | |
$teste['07/15']['produtos'][0]['qtd'] = 4; | |
$teste['07/15']['produtos'][1]['nome'] = "Produto 4"; | |
$teste['07/15']['produtos'][1]['qtd'] = 2; | |
$teste['07/15']['produtos'][2]['nome'] = "Produto 2"; | |
$teste['07/15']['produtos'][2]['qtd'] = 5; | |
$teste['08/15']['produtos'][0]['nome'] = "Produto 5"; | |
$teste['08/15']['produtos'][0]['qtd'] = 7; | |
$teste['09/15']['produtos'][0]['nome'] = "Produto 6"; | |
$teste['09/15']['produtos'][0]['qtd'] = 8; | |
$teste['10/15']['produtos'][0]['nome'] = "Produto 7"; | |
$teste['10/15']['produtos'][0]['qtd'] = 23; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment