/** * 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"); } }