예제 #1
0
 /**
  * Método salvaatestado()
  * Salva o atestado do Parecerista
  * @access public
  * @param void
  * @return void
  */
 public function salvaatestadoAction()
 {
     $this->autenticacao();
     $dtAtual = Date("Y/m/d h:i:s");
     $idAgente = $this->_request->getParam("id");
     $dtInicio = $this->formatadata($this->_request->getParam("dtinicio"));
     $dtFim = $this->formatadata($this->_request->getParam("dtfim"));
     $impacto = $this->_request->getParam("impacto");
     $tbAusencia = new TbAusencia();
     $tbDocumento = new tbDocumento();
     $tbArquivo = new tbArquivo();
     $tbArquivoImagem = new tbArquivoImagem();
     // pega as informações do arquivo
     $arquivoNome = $_FILES['arquivo']['name'];
     // nome
     $arquivoTemp = $_FILES['arquivo']['tmp_name'];
     // nome temporário
     $arquivoTipo = $_FILES['arquivo']['type'];
     // tipo
     $arquivoTamanho = $_FILES['arquivo']['size'];
     // tamanho
     if (!empty($arquivoNome)) {
         $arquivoExtensao = Upload::getExtensao($arquivoNome);
         // extensão
     }
     if (!empty($arquivoTemp)) {
         $arquivoBinario = Upload::setBinario($arquivoTemp);
         // binário
         $arquivoHash = Upload::setHash($arquivoTemp);
         // hash
     }
     $db = Zend_Registry::get('db');
     $db->setFetchMode(Zend_DB::FETCH_OBJ);
     try {
         $db->beginTransaction();
         $dadosArquivo = array('nmArquivo' => $arquivoNome, 'sgExtensao' => $arquivoExtensao, 'stAtivo' => 'A', 'dsHash' => $arquivoHash, 'dtEnvio' => $dtAtual);
         $salvarArquivo = $tbArquivo->cadastrarDados($dadosArquivo);
         $idArquivo = $tbArquivo->buscarUltimo();
         $dadosArquivoImagem = array('idArquivo' => $idArquivo['idArquivo'], 'biArquivo' => $arquivoBinario);
         $dadosAI = "Insert into BDCORPORATIVO.scCorp.tbArquivoImagem \n\t\t\t\t  (idArquivo, biArquivo) values (" . $idArquivo['idArquivo'] . ", " . $arquivoBinario . ") ";
         $salvarArquivoImagem = $tbArquivoImagem->salvarDados($dadosAI);
         $dadosDocumento = array('idTipoDocumento' => 0, 'idArquivo' => $idArquivo['idArquivo']);
         $salvarDocumento = $tbDocumento->cadastrarDados($dadosDocumento);
         $ultimoDocumento = $tbDocumento->ultimodocumento();
         $dadosAusencia = array('idTipoAusencia' => 1, 'idAgente' => $idAgente, 'dtInicioAusencia' => $dtInicio, 'dtFimAusencia' => $dtFim, 'stImpacto' => $impacto, 'idDocumento' => $ultimoDocumento['idDocumento'], 'siAusencia' => 0, 'dsJustificativaAusencia' => '', 'dtCadastroAusencia' => $dtAtual);
         // salva o novo registro
         $salvar = $tbAusencia->inserir($dadosAusencia);
         // Busca o id do registro cadastrado
         $ultimoRegistro = $tbAusencia->UltimoRegistro();
         // Monta o array com o id do ultimo registro cadastrado
         $dados = array('idAlteracao' => $ultimoRegistro[0]->id);
         // Alterar o ultimo registro cadastrado colocando o seu próprio id no campo idalteração
         $altera = $tbAusencia->alteraAusencia($dados, $ultimoRegistro[0]->id);
         /* ********************************************************************************************** */
         if ($impacto = 1) {
             // Tem que pegar todos os produtos que estão como Parecerista e devolver para o Coord.
             // Criar uma função para isso!
             $tbDistribuirParecer = new tbDistribuirParecer();
             $projetoDAO = new Projetos();
             $projetos = $projetoDAO->buscaProjetosProdutosAnaliseInicial(array('idAgenteParecerista = ?' => $idAgente, 'DtDistribuicao >= ?' => '' . $dtInicio . '', 'DtDistribuicao <= ?' => '' . $dtFim . ''));
             foreach ($projetos as $p) {
                 $dados = array('Observacao' => 'Devolvido por motivo de atestado médico.', 'idUsuario' => $this->getIdUsuario, 'DtDevolucao' => $dtAtual);
                 $salvar = $tbDistribuirParecer->atualizarParecer($dados, $p->idDistribuirParecer);
             }
         }
         /* ********************************************************************************************** */
         $db->commit();
         parent::message("Cadastro realizado com sucesso!", "agentes/atestados/id/" . $idAgente, "CONFIRM");
     } catch (Exception $e) {
         $db->rollBack();
         parent::message("Erro ao cadastrar! " . $e->getMessage(), "agentes/atestados/id/" . $idAgente, "ERROR");
     }
 }