* Necessidade PG/PR SNAS */ if (!empty($_REQUEST['DIGITAL_REFERENCIA'])) { $persist->associarDocumentos($idDocumentoPai->ID, $lastId, $usuario->ID, $usuario->ID_UNIDADE, $usuario->NOME, $usuario->DIRETORIA, 'XXXXX', 'XXXXX'); } //tratar PRIORIDADES if (isset($_REQUEST['extras']['PRIORIDADES'])) { $prioridades = $_REQUEST['extras']['PRIORIDADES']; if (is_array($prioridades)) { //desabilitar todos os vinculos do documento com as campos extras CFModelDocumentoCamposDemanda::factory()->disassociateAllByDigital($_REQUEST['DIGITAL'], "PR"); for ($i = 0; $i < count($prioridades["id"]); $i++) { if (CFModelDocumentoCamposDemanda::factory()->isExists($_REQUEST['DIGITAL'], $prioridades["id_campo"][$i], "PR")) { //Se existir atualiza CFModelDocumentoCamposDemanda::factory()->updateAssociationWithDigital($_REQUEST['DIGITAL'], $prioridades["id_campo"][$i], 1, "PR"); } else { //Se não cria CFModelDocumentoCamposDemanda::factory()->createAssociationWithDigital($_REQUEST['DIGITAL'], $prioridades["id_campo"][$i], "PR"); } } } } //Fim da funcionalidade $persist->commit(); $response = array('success' => true, 'message' => sprintf('Monitoramento %s cadastrado com sucesso!', current($documento)->DIGITAL)); } catch (Exception $e) { $factory->garbageCollection(); $persist->rollback(); $response = array('success' => false, 'message' => $e->getMessage()); } print json_encode($response);
public static function alterarDocumento(Documento $documento) { try { $usuario = Controlador::getInstance()->usuario; Controlador::getInstance()->getConnection()->connection->beginTransaction(); $documento->documento->fg_prazo = $documento->documento->fg_prazo == 'true' ? 1 : 0; $stmt = Controlador::getInstance()->getConnection()->connection->prepare("\n UPDATE TB_DOCUMENTOS_CADASTRO \n SET \n DT_DOCUMENTO = ?, DT_ENTRADA = ?, TIPO = ?, NUMERO = ?, ORIGEM = ?, \n INTERESSADO = ?, ID_ASSUNTO = ?, ASSUNTO_COMPLEMENTAR = ?, CARGO = ?, \n ASSINATURA = ?, DESTINO = ?, RECIBO = ?, TECNICO_RESPONSAVEL = ?, \n PROCEDENCIA = ?, DT_PRAZO = ?, FG_PRAZO = ?, PRIORIDADE = ? \n WHERE DIGITAL = ?\n "); //Trata a prioridade quando for do tipo PAUTA para se ter múltiplas if ($documento->documento->tipo == "ATA" && ($prioridade == 'null' || strlen(trim($prioridade)) == 0)) { $prioridade = NULL; $prioridadeType = PDO::PARAM_NULL; } #10491 if ($documento->documento->conteudo != '') { $sqDocumentoDemanda = current(CFModelDocumento::factory()->findByParam(array('DIGITAL' => $documento->documento->digital)))->ID; $stff = Controlador::getInstance()->getConnection()->connection->prepare("SELECT 1 FROM SGDOC.ext__snas__tb_documentos_conteudo WHERE id = ? LIMIT 1"); $stff->bindParam(1, $sqDocumentoDemanda, PDO::PARAM_INT); $stff->execute(); if (false == $stff->fetch(PDO::FETCH_ASSOC)) { //inserir conteudo... $stff = Controlador::getInstance()->getConnection()->connection->prepare("insert into SGDOC.ext__snas__tb_documentos_conteudo (id,conteudo) values (?,?)"); $stff->bindParam(1, $sqDocumentoDemanda, PDO::PARAM_INT); $stff->bindParam(2, $documento->documento->conteudo, PDO::PARAM_STR); $stff->execute(); } else { //atualizar conteudo... $stff = Controlador::getInstance()->getConnection()->connection->prepare("UPDATE sgdoc.ext__snas__tb_documentos_conteudo set conteudo = ? WHERE id = ?"); $stff->bindParam(1, $documento->documento->conteudo, PDO::PARAM_STR); $stff->bindParam(2, $sqDocumentoDemanda, PDO::PARAM_INT); $stff->execute(); } } $stmt->bindParam(1, Util::formatDate($documento->documento->dt_documento), PDO::PARAM_STR); //DATA_DOCUMENTO' , $stmt->bindParam(2, Util::formatDate($documento->documento->dt_entrada), PDO::PARAM_STR); //DATA_ENTRADA' , $stmt->bindParam(3, $documento->documento->tipo, PDO::PARAM_STR); //TIPO' , $stmt->bindParam(4, $documento->documento->numero, PDO::PARAM_STR); //NUMERO' , $stmt->bindParam(5, $documento->documento->origem, PDO::PARAM_STR); //ORIGEM' , $stmt->bindParam(6, $documento->documento->interessado, PDO::PARAM_STR); //INTERESSADO' , $stmt->bindParam(7, $documento->documento->assunto, PDO::PARAM_INT); //ID_ASSUNTO' , $stmt->bindParam(8, $documento->documento->assunto_complementar, PDO::PARAM_STR); //ASSUNTO_COMPLEMENTAR' , $stmt->bindParam(9, $documento->documento->cargo, PDO::PARAM_STR); //CARGO' , $stmt->bindParam(10, $documento->documento->assinatura, PDO::PARAM_STR); //ASSINATURA' , $stmt->bindParam(11, $documento->documento->destino, PDO::PARAM_STR); //DESTINO' , $stmt->bindParam(12, $documento->documento->recibo, PDO::PARAM_STR); //RECIBO' , $stmt->bindParam(13, $documento->documento->tecnico_responsavel, PDO::PARAM_STR); //TECNICO_RESPONSAVEL' , $stmt->bindParam(14, $documento->documento->procedencia, PDO::PARAM_STR); //PROCEDENCIA' , $stmt->bindParam(15, Util::formatDate($documento->documento->dt_prazo), PDO::PARAM_STR); //PRAZO' , $stmt->bindParam(16, $documento->documento->fg_prazo, PDO::PARAM_STR); //FG_PRAZO' , $stmt->bindParam(17, $prioridade, $prioridadeType); //PRIORIDADE' , $stmt->bindParam(18, $documento->documento->digital, PDO::PARAM_STR); //DIGITAL' , $stmt->execute(); $acao = "Cadastrado complementado."; $destino = "XXXXX"; $origem = "XXXXX"; /* Atualiza prioridade e participantes */ //tratar PRIORIDADES if (isset($documento->documento->extras[PRIORIDADES])) { $prioridades = $documento->documento->extras[PRIORIDADES]; if (is_array($prioridades)) { //desabilitar todos os vinculos do documento com as campos extras CFModelDocumentoCamposDemanda::factory()->disassociateAllByDigital($documento->documento->digital, "PR"); for ($i = 0; $i < count($prioridades["id"]); $i++) { if (CFModelDocumentoCamposDemanda::factory()->isExists($documento->documento->digital, $prioridades["id_campo"][$i], "PR")) { //Se existir atualiza CFModelDocumentoCamposDemanda::factory()->updateAssociationWithDigital($documento->documento->digital, $prioridades["id_campo"][$i], 1, "PR"); } else { //Se não cria CFModelDocumentoCamposDemanda::factory()->createAssociationWithDigital($documento->documento->digital, $prioridades["id_campo"][$i], "PR"); } } } } //tratar PARTICIPANTES if (isset($documento->documento->extras[PARTICIPANTES])) { $participantes = $documento->documento->extras[PARTICIPANTES]; if (is_array($participantes)) { //desabilitar todos os vinculos do documento com as campos extras CFModelDocumentoCamposDemanda::factory()->disassociateAllByDigital($documento->documento->digital, "PA"); for ($i = 0; $i < count($participantes["id"]); $i++) { if (CFModelDocumentoCamposDemanda::factory()->isExists($documento->documento->digital, $participantes["id_campo"][$i], "PA")) { //Se existir atualiza CFModelDocumentoCamposDemanda::factory()->updateAssociationWithDigital($documento->documento->digital, $participantes["id_campo"][$i], 1, "PA"); } else { //Se não cria CFModelDocumentoCamposDemanda::factory()->createAssociationWithDigital($documento->documento->digital, $participantes["id_campo"][$i], "PA"); } } } } /** * BugFix : Lancava Notice */ $id_usuario = $usuario->ID; $nome_usuario = Zend_Auth::getInstance()->getIdentity()->NOME; $id_unidade = $usuario->ID_UNIDADE; $diretoria = DaoUnidade::getUnidade($id_unidade, 'nome'); $stmm = Controlador::getInstance()->getConnection()->connection->prepare("\n INSERT INTO TB_HISTORICO_TRAMITE_DOCUMENTOS \n (DIGITAL, ID_USUARIO, USUARIO, ID_UNIDADE, DIRETORIA, \n ACAO, ORIGEM, DESTINO, DT_TRAMITE) \n VALUES \n ( ?, ?, ?, ?, ?, ?, ?, ?, CURRENT_TIMESTAMP(0) )\n "); $stmm->bindParam(1, $documento->documento->digital, PDO::PARAM_STR); $stmm->bindParam(2, $id_usuario, PDO::PARAM_INT); $stmm->bindParam(3, $nome_usuario, PDO::PARAM_STR); $stmm->bindParam(4, $id_unidade, PDO::PARAM_INT); $stmm->bindParam(5, $diretoria, PDO::PARAM_STR); $stmm->bindParam(6, $acao, PDO::PARAM_STR); $stmm->bindParam(7, $origem, PDO::PARAM_STR); $stmm->bindParam(8, $destino, PDO::PARAM_STR); $stmm->execute(); Controlador::getInstance()->getConnection()->connection->commit(); return new Output(array('success' => 'true')); } catch (PDOException $e) { Controlador::getInstance()->getConnection()->connection->rollback(); return new Output(array('success' => 'false', 'error' => $e->getMessage())); } }
function adicionaDemanda($inputData, $usuario) { $response = array(); try { $persist = CFModelDocumentoDemanda::factory(); $persist->beginTransaction(); $factory = TPDocumentoDemanda::factory(); $digital = CFModelDigital::factory()->next($usuario->ID_UNIDADE); if (!$digital) { throw new Exception('Não existe digitais disponíveis!'); } $inputData['NUMERO'] = $digital; $inputData['DIGITAL'] = $digital; $lastId = $factory->create($inputData); $documento = $persist->find($lastId); $idDocumentoPai = current($persist->findByParam(array('DIGITAL' => $inputData['DIGITAL_REFERENCIA']))); $inputData['DIGITAL_PAI'] = $idDocumentoPai->DIGITAL; if (empty($documento)) { throw new Exception('Ocorreu um erro ao tentar registrar o novo monitoramento!'); } $inputData['ID'] = $lastId; $factory->generatePDF($inputData)->convertPDFToPng($inputData['DIGITAL'])->garbageCollection()->registerPNGDB($inputData['DIGITAL'], Controlador::getInstance()->getConnection()->connection)->registerDeadlines($inputData); //Cria o histórico do documento para encaminhamento $inputData['ULTIMO_TRAMITE'] = sprintf('Encaminhado por %s - %s para %s em %s', $usuario->NOME, $usuario->DIRETORIA, $inputData['DESTINO'], date('d/m/Y - H:i:s')); $factory->transact($inputData); /** * @author Bruno Pedreira * Data: 11/12/2013 * Funcionalidade adicionada para associar documentos. * Necessidade PG/PR SNAS */ if (!empty($inputData['DIGITAL_REFERENCIA'])) { $persist->associarDocumentos($idDocumentoPai->ID, $lastId, $usuario->ID, $usuario->ID_UNIDADE, $usuario->NOME, $usuario->DIRETORIA, 'XXXXX', 'XXXXX'); } //tratar PRIORIDADES if (isset($inputData['PRIORIDADES'])) { $prioridades = $inputData['PRIORIDADES']; if (count($prioridades) > 1) { //desabilitar todos os vinculos do documento com as campos extras CFModelDocumentoCamposDemanda::factory()->disassociateAllByDigital($inputData['DIGITAL'], "PR"); foreach ($prioridades as $prioridade) { if (CFModelDocumentoCamposDemanda::factory()->isExists($inputData['DIGITAL'], $prioridade, "PR")) { //Se existir atualiza CFModelDocumentoCamposDemanda::factory()->updateAssociationWithDigital($inputData['DIGITAL'], $prioridade, 1, "PR"); } else { //Se não cria CFModelDocumentoCamposDemanda::factory()->createAssociationWithDigital($inputData['DIGITAL'], $prioridade, "PR"); } } } } //Fim da funcionalidade $persist->commit(); $response = array('success' => true, 'message' => sprintf('Monitoramento %s cadastrado com sucesso!', current($documento)->DIGITAL), 'digital' => current($documento)->DIGITAL); } catch (Exception $e) { $factory->garbageCollection(); $persist->rollback(); $response = array('success' => false, 'message' => $e->getMessage(), 'digital' => current($documento)->DIGITAL); } return $response; }