Example #1
0
 public function listarCnhsVencidas($filtro, $dados)
 {
     $qb = $this->createQueryBuilder('mo');
     $qb->andwhere(' mo.lotacao = :lotacao')->setParameter('lotacao', $dados['lotacao']);
     $qb->andwhere(' mo.dataValidadeCnh <= :dataValidadeCnh')->setParameter('dataValidadeCnh', DateUtil::adicionarMeses(\DateTime::createFromFormat('d/m/Y', DateUtil::dataAtual()), 1));
     $qb->orderBy('mo.dataValidadeCnh', 'asc');
     return $qb->getQuery()->getResult();
 }
Example #2
0
 public function validaDatasMovimentacao($dados)
 {
     $dataSaida = DateUtil::criarDataHora($dados['dataSaida'], $dados['horaSaida']);
     $dataRetorno = DateUtil::criarDataHora($dados['dataRetorno'], $dados['horaRetorno']);
     //Caso seja alteração (terá um id) não compara com o próprio registro
     $id = $dados['id'] ? $dados['id'] : 0;
     $qb = $this->createQueryBuilder('m')->where('m.placaVeiculo = :placaVeiculo')->andWhere("m.id != :id ")->andWhere("\n                    :dataSaida between m.dataSaida and m.dataRetorno\n                    or\n                    :dataRetorno between m.dataSaida and m.dataRetorno\n                ")->setParameter('placaVeiculo', $dados[placaVeiculo])->setParameter('dataSaida', $dataSaida)->setParameter('dataRetorno', $dataRetorno)->setParameter('id', $id);
     $trechos = $qb->getQuery()->getResult();
     return $trechos;
 }
Example #3
0
 public static function validarData($valor, $mensagem)
 {
     if (!$valor) {
         throw new ValidacaoException($mensagem);
     } else {
         try {
             $data = DateUtil::criarData($valor);
             if (!$data) {
                 throw new ValidacaoException($mensagem);
             }
         } catch (Exception $ex) {
             throw new ValidacaoException($mensagem);
         }
     }
 }
Example #4
0
 public function validarRevisaoFabrica($dados)
 {
     if (!$dados['veiculo']['placa']) {
         throw new ValidacaoException('Veículo não informado!');
     }
     if (!$dados['kmRevisao']) {
         throw new ValidacaoException('KM da Revisão não informada!');
     }
     if (!$dados['hodometro']) {
         throw new ValidacaoException('Hodômetro não informado!');
     }
     if (!$dados['data']) {
         throw new ValidacaoException('Data da revisão não informada!');
     } else {
         try {
             $data = DateUtil::criarData($dados['data']);
             if (!$data) {
                 throw new ValidacaoException('Data da revisão inválida!');
             }
         } catch (Exception $ex) {
             throw new ValidacaoException('Data da revisão inválida!');
         }
     }
 }
Example #5
0
 public function isCnhVencida()
 {
     return $this->getDataValidadeCnh() < \DateTime::createFromFormat('d/m/Y', DateUtil::dataAtual());
 }
Example #6
0
 public function validarMotorista($dados)
 {
     if (!$dados['matricula']) {
         throw new ValidacaoException('Matricula não informada!');
     }
     if (!$dados['nome']) {
         throw new ValidacaoException('Nome não informado!');
     }
     if (!$dados['nomeImpresso']) {
         throw new ValidacaoException('Nome Simplificado não informado!');
     }
     if (!$dados['cnh']) {
         throw new ValidacaoException('Número da CNH não informado!');
     }
     if (!$dados['tipoCategoriaCnh']) {
         throw new ValidacaoException('Categoria da CNH não informada!');
     }
     if (!$dados['dataValidadeCnh']) {
         throw new ValidacaoException('Data de Validade da Cnh não informada!');
     } else {
         try {
             $dataValidadeCnh = DateUtil::criarData($dados['dataValidadeCnh']);
             if (!$dataValidadeCnh) {
                 throw new ValidacaoException('Data de Validade da Cnh inválida!');
             }
         } catch (Exception $ex) {
             throw new ValidacaoException('Data de Validade da Cnh inválida!');
         }
     }
     if (!$dados['endereco']) {
         throw new ValidacaoException('Logradouro do endereço não informado!');
     }
     if (!$dados['bairro']) {
         throw new ValidacaoException('Bairro do endereço não informado!');
     }
     if (!$dados['cep']) {
         throw new ValidacaoException('CEP do endereço não informado!');
     }
     if (!$dados['municipio']['id']) {
         throw new ValidacaoException('Município do endereço não informado!');
     }
     if (!$dados['lotacao']) {
         throw new ValidacaoException('Lotação não informada!');
     }
     if (!$dados['cargo']['codigo']) {
         throw new ValidacaoException('Cargo não informado!');
     }
 }
Example #7
0
 public function validarVeiculo($dados)
 {
     if (!$dados['placa']) {
         throw new ValidacaoException('Placa não informada!');
     }
     if (!$dados['marcaModelo']) {
         throw new ValidacaoException('Marca e Modelo não informados!');
     }
     if (!$dados['anoFabricacao']) {
         throw new ValidacaoException('Ano de Fabricação não informado!');
     }
     if (!$dados['placaMpm']) {
         throw new ValidacaoException('Placa do MPM não informada!');
     }
     if (!$dados['status']) {
         throw new ValidacaoException('Status não informado!');
     }
     if (!$dados['chassi']) {
         throw new ValidacaoException('Chassi não informado!');
     }
     if (!$dados['combustivel']) {
         throw new ValidacaoException('Combustível não informado!');
     }
     if ($dados['status'] == '2') {
         //Se doado
         if (!$dados['dataDoacao']) {
             throw new ValidacaoException('Data de Doação não informada!');
         } else {
             try {
                 $dataDoacao = DateUtil::criarData($dados['dataDoacao']);
                 if (!$dataDoacao) {
                     throw new ValidacaoException('Data de Doação inválida!');
                 }
             } catch (Exception $ex) {
                 throw new ValidacaoException('Data de Doação inválida!');
             }
         }
     }
 }
 public function validarTransferenciaVeiculo($dados)
 {
     if (!$dados['veiculo']) {
         throw new ValidacaoException('Veículo não informado!');
     }
     if (!$dados['destino']) {
         throw new ValidacaoException('Destino não informado!');
     }
     //Comentado para permitir registros passados/historico e alteração de dados
     //        if ($dados['veiculo']['lotacao']['codigo'] == $dados['destino']['codigo']) {
     //            throw new ValidacaoException('O destino deve ser diferente da lotação atual do veículo!');
     //        }
     if ($dados['origem']['codigo'] == $dados['destino']['codigo']) {
         throw new ValidacaoException('O destino deve ser diferente da origem!');
     }
     if (!$dados['data']) {
         throw new ValidacaoException('Data de Transferência não informada!');
     } else {
         try {
             $data = DateUtil::criarData($dados['data']);
             if (!$data) {
                 throw new ValidacaoException('Data de Transferência inválida!');
             }
         } catch (Exception $ex) {
             throw new ValidacaoException('Data de Transferência inválida!');
         }
     }
 }
Example #9
0
 public function getProximaDataRevisao()
 {
     $ultimaRevisao = $this->getUltimaRevisao();
     if ($ultimaRevisao) {
         $dataUltimaRevisao = $ultimaRevisao->getData();
     } else {
         $dataUltimaRevisao = $this->getDataCompra();
     }
     //Data da Proxima revisao será a data da ultima revisão mais os meses de revisões do veiculo
     $dataProximaRevisao = DateUtil::adicionarMeses($dataUltimaRevisao, $this->getMesesRevisao());
     return $dataProximaRevisao;
 }
Example #10
0
 public function validarMovimentacao($dados)
 {
     if (!$dados['placaVeiculo']) {
         throw new ValidacaoException('Veículo não informado!');
     }
     if (!$dados['dataSolicitacao']) {
         throw new ValidacaoException('Data da Solicitação não informada!');
     } else {
         try {
             $dataSolicitacao = DateUtil::criarData($dados['dataSolicitacao']);
             if (!$dataSolicitacao) {
                 throw new ValidacaoException('Data da Solicitação inválida!');
             }
         } catch (Exception $ex) {
             throw new ValidacaoException('Data da Solicitação inválida!');
         }
     }
     if (!$dados['horaSolicitacao']) {
         throw new ValidacaoException('Hora da solicitação não informada!');
     }
     if (!$dados['itinerario']) {
         throw new ValidacaoException('Itinerário não informado!');
     }
     if (!$dados['dataSaida']) {
         throw new ValidacaoException('Data de Saída não informada!');
     } else {
         try {
             $dataSaida = DateUtil::criarData($dados['dataSaida']);
             if (!$dataSaida) {
                 throw new ValidacaoException('Data de Saída inválida!');
             }
         } catch (Exception $ex) {
             throw new ValidacaoException('Data de Saída inválida!');
         }
     }
     if (!$dados['horaSaida']) {
         throw new ValidacaoException('Hora da saída não informada!');
     }
     if (!$dados['dataRetorno']) {
         throw new ValidacaoException('Data de Retorno não informada!');
     } else {
         try {
             $dataRetorno = DateUtil::criarData($dados['dataRetorno']);
             if (!$dataRetorno) {
                 throw new ValidacaoException('Data de Retorno inválida!');
             }
         } catch (Exception $ex) {
             throw new ValidacaoException('Data de Retorno inválida!');
         }
     }
     if (!$dados['horaRetorno']) {
         throw new ValidacaoException('Hora do retorno não informada!');
     }
     if (DateUtil::criarDataHora($dados['dataSolicitacao'], $dados['horaSolicitacao']) > DateUtil::criarDataHora($dados['dataSaida'], $dados['horaSaida'])) {
         throw new ValidacaoException('A Data de Solicitação deve ser igual ou anterior à Data de Saída!');
     }
     if (DateUtil::criarDataHora($dados['dataRetorno'], $dados['horaRetorno']) < DateUtil::criarDataHora($dados['dataSaida'], $dados['horaSaida'])) {
         throw new ValidacaoException('A Data de Retorno deve ser igual ou posterior à Data de Saída!');
     }
     if (DateUtil::criarDataHora($dados['dataSolicitacao'], $dados['horaSolicitacao']) > DateUtil::criarDataHora($dados['dataRetorno'], $dados['horaRetorno'])) {
         throw new ValidacaoException('A Data de Solicitação deve ser igual ou anterior à Data de Retorno!');
     }
     if (!$dados['hodometroSaida']) {
         throw new ValidacaoException('Hodômetro de Saída não informado!');
     }
     if (!$dados['hodometroRetorno']) {
         throw new ValidacaoException('Hodômetro de Retorno não informado!');
     }
     if ($dados['hodometroRetorno'] <= $dados['hodometroSaida']) {
         throw new ValidacaoException('A marcação do Hodômetro de Retorno deve ser maior que a do Hodômetro de Saída!');
     }
     if (!$dados['combustivelInicial']) {
         throw new ValidacaoException('Combustível inicial não informado!');
     }
     if (!$dados['solicitante']) {
         throw new ValidacaoException('Solicitante não informado!');
     }
     if (!$dados['motorista']) {
         throw new ValidacaoException('Motorista não informado!');
     }
     if (!$dados['passageiros'] && !$dados['outrosPassageiros']) {
         throw new ValidacaoException('Nenhum passageiro informado!');
     }
     if ($this->getRepository()->validaDatasMovimentacao($dados)) {
         throw new ValidacaoException('Existe uma movimentação para o veículo no período informado!');
     }
     if ($this->getRepository()->validaHodometrosMovimentacao($dados)) {
         throw new ValidacaoException('Existe uma movimentação para o veículo neste intervalo dos hodômetros!');
     }
 }
Example #11
0
 public function validarOcorrencia($dados)
 {
     if (!$dados['placaVeiculo']) {
         throw new ValidacaoException('Veículo não informado!');
     }
     if (!$dados['hodometro']) {
         throw new ValidacaoException('Hodômetro não informado!');
     }
     DateUtil::validarData($dados['data'], 'Data não informada');
     if (!$dados['hora']) {
         throw new ValidacaoException('Hora não informada!');
     }
     if (!$dados['motorista']) {
         throw new ValidacaoException('Motorista não informado!');
     }
     if (!$dados['local']) {
         throw new ValidacaoException('Local não informado!');
     }
     if ($dados['usaEcoFrotas']) {
         if (!$dados['cnpj']) {
             throw new ValidacaoException('CNPJ inválido ou não informado!');
         }
         if (!$dados['cartao']) {
             throw new ValidacaoException('Nº do Cartão não informado!');
         }
         if (!$dados['fatura']) {
             throw new ValidacaoException('Nº da Fatura não informado!');
         }
         if (!$dados['transacao']) {
             throw new ValidacaoException('Nº da Transação não informado!');
         }
     }
 }