Exemplo n.º 1
0
 /**
  * Consulta de processos.
  *
  * @return QueryBuilder
  */
 public function listGridProcesso($dto)
 {
     $listCondition = array('getInteressado' => array("ilike" => array("OR" => array("trim(pse.no_pessoa)", "trim(vue.sg_unidade_org || ' - ' || pse.no_pessoa)"), 'tlp' => array('trim(%s)', 'trim(%s)'))), 'getNuArtefato' => array("regex" => array("AND" => array('art.nu_artefato'), 'tlp' => array('%s'))), 'getSqAssunto' => array("=" => array("AND" => 'ass.sq_assunto')), 'getTxAssuntoComplementar' => array("ilike" => array("AND" => 'art.tx_assunto_complementar')), 'getOrigem' => array("ilike" => array('OR' => array('trim(pfo.no_pessoa)', "trim(pfo.no_pessoa)"), 'tlp' => array('trim(%s)', 'trim(%s)'))), 'getNuDigital' => array("ilike" => array("AND" => 'cast(ard.nu_digital as text)')));
     $listPeriodo = array('dtCadastro' => 'art.dt_cadastro', 'dtAutuacao' => 'art.dt_artefato', 'dtPrazo' => 'art.dt_prazo');
     $sqPeriodo = $dto->getSqPeriodo();
     $periodoColumn = null;
     if (isset($listPeriodo[$sqPeriodo])) {
         $periodoColumn = $listPeriodo[$sqPeriodo];
     }
     $where = $this->getEntityManager()->getRepository('app:Artefato')->getCriteriaText($listCondition, $dto, $periodoColumn);
     $rsm = new \Doctrine\ORM\Query\ResultSetMapping($this->_em);
     $rsm->addScalarResult('total_record', 'totalRecord', 'integer');
     $rsm->addScalarResult('sq_artefato', 'sqArtefato', 'integer');
     $rsm->addScalarResult('nu_artefato', 'nuArtefato', 'string');
     $rsm->addScalarResult('tx_assunto', 'txAssunto', 'string');
     $rsm->addScalarResult('origem', 'noPessoaOrigem', 'string');
     $rsm->addScalarResult('interessados', 'noPessoaInteressados', 'string');
     $rsm->addScalarResult('tx_movimentacao', 'txMovimentacao', 'string');
     $sql = "SELECT\n                       COUNT(art.sq_artefato) OVER() AS total_record,\n                       art.sq_artefato,\n                       formata_numero_artefato(art.nu_artefato, atp.co_ambito_processo) AS nu_artefato,\n                       ass.sq_assunto,\n                       ass.tx_assunto,\n                       art.tx_assunto_complementar,\n                       string_agg(pse.no_pessoa, ', ') as interessados,\n                       pfo.sq_pessoa_corporativo as origem_id,\n                       pfo.no_pessoa as origem,\n                       art.dt_artefato,\n                       art.dt_prazo,\n                       art.dt_cadastro,\n                       ard.nu_digital,\n                       sgdoce.ultima_movimentacao_artefato(art.sq_artefato) as tx_movimentacao,\n                       vuo.sg_unidade_org\n                  FROM sgdoce.artefato art\n                  JOIN sgdoce.artefato_processo atp\n                    ON art.sq_artefato = atp.sq_artefato\n                  JOIN sgdoce.tipo_artefato_assunto taa\n                    ON art.sq_tipo_artefato_assunto = taa.sq_tipo_artefato_assunto\n                  JOIN sgdoce.assunto ass\n                    ON taa.sq_assunto = ass.sq_assunto\n                  JOIN sgdoce.pessoa_artefato pao\n                    ON art.sq_artefato = pao.sq_artefato AND pao.sq_pessoa_funcao = " . \Core_Configuration::getSgdocePessoaFuncaoOrigem() . "\n                  JOIN sgdoce.pessoa_sgdoce pfo\n                    ON pao.sq_pessoa_sgdoce = pfo.sq_pessoa_sgdoce\n             LEFT JOIN corporativo.vw_unidade_org vuo\n                    ON pfo.sq_pessoa_corporativo = vuo.sq_pessoa\n             LEFT JOIN sgdoce.pessoa_interessada_artefato pai\n                    ON art.sq_artefato = pai.sq_artefato\n             LEFT JOIN sgdoce.pessoa_sgdoce pse\n                    ON pai.sq_pessoa_sgdoce = pse.sq_pessoa_sgdoce\n             LEFT JOIN corporativo.vw_unidade_org vue\n                    ON pse.sq_pessoa_corporativo = vue.sq_pessoa\n             LEFT JOIN sgdoce.artefato_vinculo arv\n                    ON art.sq_artefato = arv.sq_artefato_pai AND arv.sq_tipo_vinculo_artefato = " . \Core_Configuration::getSgdoceTipoVinculoArtefatoAutuacao() . "\n             LEFT JOIN sgdoce.artefato ard\n                    ON ard.sq_artefato = arv.sq_artefato_filho\n                %s\n              GROUP BY art.sq_artefato,\n                       art.nu_artefato,\n                       atp.co_ambito_processo,\n                       ass.sq_assunto,\n                       ass.tx_assunto,\n                       art.tx_assunto_complementar,\n                       pfo.sq_pessoa_corporativo,\n                       pfo.no_pessoa,\n                       art.dt_artefato,\n                       art.dt_prazo,\n                       art.dt_cadastro,\n                       ard.nu_digital,\n                       tx_movimentacao,\n                       vuo.sg_unidade_org";
     if ($where != "") {
         $where = "WHERE " . $where;
     } else {
         $where = "WHERE 1 <> 1";
     }
     $sql = sprintf($sql, $where);
     return $this->_em->createNativeQuery($sql, $rsm);
 }
Exemplo n.º 2
0
 public function canEditArtefact(\Core_Dto_Search $dto, $isProcesso = FALSE)
 {
     $repoUTA = $this->_getRepository('app:VwUltimoTramiteArtefato');
     $isChild = $this->_getRepository('app:ArtefatoVinculo')->isChild($dto);
     $isAllowedAlter = in_array(\Core_Integration_Sica_User::getUserProfile(), $this->getUsersAllowedAlterArtefact());
     $listTipoAssuntoSolicitacao = array(\Core_Configuration::getSgdoceTipoAssuntoSolicitacaoAlterarCadastro());
     $dtoSolicitacao = \Core_Dto::factoryFromData(array('sqArtefato' => $dto->getSqArtefato()), 'search');
     $hasDemandaAlteracaoDados = $this->getServiceLocator()->getService('Solicitacao')->hasDemandaAbertaByAssuntoPessoaResponsavel($dtoSolicitacao, $listTipoAssuntoSolicitacao);
     // Se processo, verifica se existe vinculo além do tipo de autuação
     $hasProcessoVinculo = false;
     if ($isProcesso) {
         $rsVinculosProcesso = $this->_getRepository('app:ArtefatoVinculo')->findByNot(array('sqArtefatoPai' => $dto->getSqArtefato()), array('sqTipoVinculoArtefato' => \Core_Configuration::getSgdoceTipoVinculoArtefatoAutuacao()));
         $hasProcessoVinculo = count($rsVinculosProcesso);
     }
     //se $areaTrabalho, logo, esta na area da pessoa logada
     //caso contrario retorna NULL
     $areaTrabalho = $this->_getRepository()->findArtefato($dto);
     //SGI pode alterar o documento se houver demanda de suporte do tipo alterar dados ou alterar grau ou se estiver na minha da area de trabalho dele.
     if ($isAllowedAlter && $hasDemandaAlteracaoDados || $isAllowedAlter && $areaTrabalho) {
         return TRUE;
     }
     if ($areaTrabalho && $repoUTA->isFirstTramite($dto) && (!$areaTrabalho->getHasVinculo() || !$hasProcessoVinculo) && !$areaTrabalho->getArquivado() && !$areaTrabalho->getHasSolicitacaoAberta() && !$isChild) {
         return TRUE;
     }
     return FALSE;
 }
 /**
  * Método padrão
  */
 public function indexAction()
 {
     $this->_helper->layout->setLayout('modal');
     $data['sqArtefato'] = $this->_getParam("sqArtefato");
     $dtoArtefato = Core_Dto::factoryFromData($data, 'search');
     $this->view->entityArtefato = $this->getService()->find($data['sqArtefato']);
     $artefatoInconsistente = $this->getService()->isInconsistent($this->view->entityArtefato, FALSE, TRUE);
     if ($artefatoInconsistente) {
         $noTipoArtefato = mb_strtolower($this->view->entityArtefato->getSqTipoArtefatoAssunto()->getSqTipoArtefato()->getNoTipoArtefato(), 'utf-8');
         $this->getMessaging()->addAlertMessage("Os dados deste {$noTipoArtefato} estão inconsistentes. A correção deve ser feita pelo usuário que estiver com o {$noTipoArtefato} em sua Área de Trabalho.", 'User');
         $this->getMessaging()->dispatchPackets();
     }
     $sqTipoArtefato = $this->view->entityArtefato->getSqTipoArtefatoAssunto()->getSqTipoArtefato()->getSqTipoArtefato();
     //monta a arvore de vinculos
     $this->view->vinculos = $this->getService('ArtefatoVinculo')->mostarArvore((int) $data['sqArtefato']);
     $this->view->urlBack = str_replace(".", "/", $this->getRequest()->getParam('back', ""));
     $this->view->dadosOrigem = $this->returnDadosOrigem($dtoArtefato);
     $this->view->dadosDestino = $this->returnDadosDestino($dtoArtefato);
     if ($sqTipoArtefato == \Core_Configuration::getSgdoceTipoArtefatoProcesso()) {
         $criteria = array('sqArtefatoPai' => $dtoArtefato->getSqArtefato(), 'sqTipoVinculoArtefato' => \Core_Configuration::getSgdoceTipoVinculoArtefatoAutuacao());
         $this->view->autuacao = $this->getService('ArtefatoVinculo')->findBy($criteria);
         $this->view->dadosInteressado = $this->getService('PessoaInterassadaArtefato')->getPessoaInteressadaArtefato($dtoArtefato);
     }
     $this->view->nacionalidadeDestino = NULL;
     if ($this->view->dadosDestino) {
         $sqTipoPessoa = $this->view->dadosDestino[0]->getSqPessoaSgdoce()->getSqTipoPessoa()->getSqTipoPessoa();
         if ($sqTipoPessoa == \Core_Configuration::getSgdoceTipoPessoaPessoaFisica()) {
             $this->view->nacionalidadeDestino = $this->returnNacionalidade($this->view->dadosDestino);
         }
     }
     $this->view->nacionalidadeOrigem = NULL;
     if ($this->view->dadosOrigem) {
         $sqTipoPessoa = $this->view->dadosOrigem[0]->getSqPessoaSgdoce()->getSqTipoPessoa()->getSqTipoPessoa();
         if ($sqTipoPessoa == \Core_Configuration::getSgdoceTipoPessoaPessoaFisica()) {
             $this->view->nacionalidadeOrigem = $this->returnNacionalidade($this->view->dadosOrigem);
         }
     }
     if ($this->view->urlBack == "") {
         $this->view->urlBack = "javascript:window.close();";
     }
     // REGISTRO DE VISUALIZAÇÃO DE ARTEFATO. #HistoricoArtefato::save();
     //            $strMessage = sprintf($this->getServiceLocator()
     //                            ->getService('HistoricoArtefato')
     //                            ->getMessage('MH003'), Core_Integration_Sica_User::getUserName());
     //
     //            $this->_salvarHistoricoArtefato($dtoArtefato->getSqArtefato(),
     //                   \Core_Configuration::getSgdoceSqOcorrenciaVisualizar(),
     //                   $strMessage);
 }
Exemplo n.º 4
0
 /**
  * Ação para visualização de imagem de documentos migrados
  */
 public function viewMigrationAction()
 {
     $this->getHelper('layout')->setLayout('modal');
     $sqArtefato = $this->getRequest()->getParam('id');
     // Regras para artefatos de migração.
     $dtoSearchPai = \Core_Dto::factoryFromData(array('sqArtefato' => $sqArtefato), 'search');
     $params = $this->_viewSteps();
     $entArtefato = $this->getService("Artefato")->find($params['id']);
     if ($entArtefato->isProcesso() && $this->getService("Artefato")->isMigracao($dtoSearchPai) && $this->getService("Artefato")->isInconsistent($dtoSearchPai)) {
         $firstItem = current($this->view->treeviewData);
         $primeiraPeca = current($firstItem['filhos']);
         $dtoSearch = \Core_Dto::factoryFromData(array('sqArtefato' => $primeiraPeca['sqArtefatoFilho']), 'search');
         $hasImagem = $this->getService()->hasArtefatoImagemAtiva($dtoSearch);
         if (!$hasImagem) {
             $this->view->entArtefato = $entArtefato;
             //recupera a 1ª Peça
             $entPrimeiraPeca = $this->getService('ArtefatoVinculo')->findOneBy(array('sqArtefatoPai' => $entArtefato->getSqArtefato(), 'sqTipoVinculoArtefato' => \Core_Configuration::getSgdoceTipoVinculoArtefatoAutuacao()));
             //se não tem 1ª Peça não faz nada
             if (!$entPrimeiraPeca) {
                 $this->render('fail-image-not-first-piece');
             } else {
                 $listSolicitacao = $this->getService()->getSolicitacaoMigracaoImagem($dtoSearch);
                 if ($listSolicitacao) {
                     $configs = \Core_Registry::get('configs');
                     $qtdeTentativa = $configs['migration']['qtdeTentativa'];
                     $entSolicitacao = current($listSolicitacao);
                     if (!$entSolicitacao->getStProcessado() && $entSolicitacao->getInTentativa() == $qtdeTentativa) {
                         $this->render('fail-image-not-process');
                     } else {
                         $this->render('fail-image-processo');
                     }
                 } else {
                     $this->render('fail-image-processo');
                 }
             }
         }
     }
     $this->view->canOverwrite = false;
     if (count($this->view->treeviewData) > 0 && !$this->view->hasImage) {
         $firstItem = current($this->view->treeviewData);
         $this->view->hasImage = count($firstItem['filhos']) > 0;
     }
     if (!$this->view->treeviewData) {
         $this->view->hasDuplicity = true;
     }
     $this->getService('VinculoMigracao')->verificaImagemArvore($this->view->treeviewData);
     // Verifica se item é de migração e se tem imagem, se não tiver, adicionar uma solicitação de migração de imagem
     if (isset($params['view']) && $params['view'] == 'migracao') {
         if ($this->getService("Artefato")->isInconsistent($dtoSearchPai, true)) {
             $this->view->canOverwrite = true;
         }
         $this->view->id = $params['id'];
         $this->render('view-migracao');
     } else {
         $this->render('view');
     }
     $isAllowedAlter = in_array(\Core_Integration_Sica_User::getUserProfile(), $this->getService()->getUsersAllowedAlterImage());
     $inMyDashboard = $this->getService("Artefato")->inMyDashboard($dtoSearchPai->getSqArtefato());
     $this->view->canAlterImage = $isAllowedAlter && $inMyDashboard;
     $this->view->sqTipoArtefato = $entArtefato->getSqTipoArtefatoAssunto()->getSqTipoArtefato()->getSqTipoArtefato();
 }
Exemplo n.º 5
0
 /**
  * método que retorna dados para grid
  * @param \Core_Dto_Abstract $dto
  * @return \Doctrine\ORM\QueryBuilder
  */
 public function listGridVinculacaoPeca(\Core_Dto_Search $dto)
 {
     $queryBuilder = $this->_em->createQueryBuilder()->select('af.nuArtefato', 'af.nuDigital', 'av.inOriginal', 'av.sqArtefatoVinculo')->from('app:ArtefatoVinculo', 'av')->leftJoin('av.sqArtefatoPai', 'ap')->leftJoin('av.sqArtefatoFilho', 'af')->leftJoin('av.sqTipoVinculoArtefato', 'tva')->andWhere('av.sqTipoVinculoArtefato in(:insercao)')->setParameters(array('insercao' => array(\Core_Configuration::getSgdoceTipoVinculoArtefatoInsercao(), \Core_Configuration::getSgdoceTipoVinculoArtefatoAutuacao())))->andWhere('av.dtRemocaoVinculo IS NULL')->andWhere('av.sqArtefatoPai = :id')->setParameter('id', $dto->getSqArtefato());
     return $queryBuilder;
 }
Exemplo n.º 6
0
 /**
  * @param \Core_Dto $dto
  * @return multitype:
  */
 public function findSqArtefatoPai($dto)
 {
     $criteria = array('sqArtefatoPai' => $dto->getSqArtefato(), 'dtRemocaoVinculo' => NULL, 'sqTipoVinculoArtefato' => \Core_Configuration::getSgdoceTipoVinculoArtefatoAutuacao());
     return $this->_getRepository('app:ArtefatoVinculo')->findBy($criteria);
 }
Exemplo n.º 7
0
 /**
  * @param integer $sqArtefato
  * @return boolean
  */
 public function hasImage($sqArtefato, $sqTipoArtefato = null)
 {
     try {
         if ($sqTipoArtefato == \Core_Configuration::getSgdoceTipoArtefatoProcesso()) {
             $entityArtefato = $this->_getRepository($this->_entityArtefato)->find($sqArtefato);
             $sqTipoArtefato = $entityArtefato->getSqTipoArtefatoAssunto()->getSqTipoArtefato()->getSqTipoArtefato();
             /**
              * se for processo recupera a 1ª peça para verificar se tem imagem
              */
             if ($sqTipoArtefato == \Core_Configuration::getSgdoceTipoArtefatoProcesso()) {
                 $entityArtefatoVinculoPrimeiraPeca = $this->_getRepository($this->_entityArtefatoVinculo)->findOneBy(array('sqArtefatoPai' => $sqArtefato, 'sqTipoVinculoArtefato' => \Core_Configuration::getSgdoceTipoVinculoArtefatoAutuacao()));
                 /**
                  * Não existe vinculo de primeira peça para o processo
                  */
                 if (null === $entityArtefatoVinculoPrimeiraPeca) {
                     return false;
                 }
                 //pega o sqArtefato do pai
                 $sqArtefato = $entityArtefatoVinculoPrimeiraPeca->getSqArtefatoFilho()->getSqArtefato();
             }
         }
         $filePath = $this->getImagePath($sqArtefato);
         if (empty($filePath)) {
             return false;
         }
         $file = sprintf('%1$s%2$s..%2$sdata%2$s%3$s', APPLICATION_PATH, DIRECTORY_SEPARATOR, $filePath);
         if (!file_exists($file)) {
             throw new \Core_Exception_ServiceLayer('Imagem cadastrada, porém não foi encontrado o arquivo da mesma');
         }
         $artefatoImagemEntity = $this->_getArtefatoImageEntity($sqArtefato);
         $hashValidate = new \Zend_Validate_File_Hash(array('hash' => $artefatoImagemEntity->getTxHash(), 'algorithm' => self::HASH_ALGORITHM));
         if (!$hashValidate->isValid($file)) {
             throw new \Core_Exception_ServiceLayer('Autenticidade da imagem violada');
         }
     } catch (\Exception $exp) {
         $message = sprintf('[SGDoc-e] Exception %s in %s(%d): "%s"', get_class($exp), __METHOD__, $sqArtefato, $exp->getMessage());
         error_log($message);
         throw $exp;
     }
     return true;
 }
Exemplo n.º 8
0
 /**
  * @return
  */
 public function listGrid(\Core_Dto_Search $dto)
 {
     $listCondition = array('getSqPessoaAbertura' => array("=" => array("AND" => 's.sq_pessoa')), 'getSqUnidadeOrgAbertura' => array("=" => array("AND" => 's.sq_unidade_org')), 'getSqTipoAssuntoSolicitacao' => array("=" => array("AND" => 'tas.sq_tipo_assunto_solicitacao')), 'getSqTipoStatusSolicitacao' => array("=" => array("AND" => 'uss.sq_tipo_status_solicitacao')), 'getSqTipoStatusSolicitacaoNot' => array("<>" => array("AND" => 'uss.sq_tipo_status_solicitacao')), 'getSqPessoaResponsavel' => array("=" => array("AND" => 'uss.sq_pessoa_responsavel')), 'getSqPessoaResponsavelIsNull' => array("IS" => array("AND" => 'uss.sq_pessoa_responsavel')), 'getSqPessoaResponsavelNot' => array("<>" => array("AND" => 'uss.sq_pessoa_responsavel')), 'getSearch' => array("ilike" => array('OR' => array('tas.no_tipo_assunto_solicitacao', 's.ds_solicitacao', 'pes_atendimento.no_pessoa', 'und_abertura.sg_unidade_org', 'pes_abertura.no_pessoa', 'at.nu_artefato', 'formata_numero_digital(at.nu_digital)', 'cast(s.sq_solicitacao as text)', 'tx_email'))));
     $operationTypeArtefato = 'IS NULL';
     if (in_array($dto->getSqTipoArtefato(), array(1, 2))) {
         $operationTypeArtefato = '=';
     }
     $listCondition['getSqTipoArtefato'] = array($operationTypeArtefato => array("AND" => 'taa.sq_tipo_artefato'));
     if ($dto->getNuArtefato() != '' && $dto->getSqTipoArtefato()) {
         if ($dto->getSqTipoArtefato() == \Core_Configuration::getSgdoceTipoArtefatoProcesso()) {
             $listCondition['getNuArtefato'] = array("ilike" => array("OR" => array("formata_numero_artefato(at.nu_artefato, ap.co_ambito_processo)", 'at.nu_artefato')));
         } else {
             $listCondition['getNuArtefato'] = array("ilike" => array("AND" => "formata_numero_digital(at.nu_digital)"));
         }
     }
     $period = null;
     if ($dto->getDtSolicitacao() != "") {
         $period = "s.dt_solicitacao";
     }
     $where = $this->getEntityManager()->getRepository('app:Artefato')->getCriteriaText($listCondition, $dto, $period);
     $rsm = new \Doctrine\ORM\Query\ResultSetMapping($this->_em);
     $rsm->addScalarResult('sq_solicitacao', 'sqSolicitacao', 'integer');
     $rsm->addScalarResult('sq_artefato', 'sqArtefato', 'integer');
     $rsm->addScalarResult('no_tipo_assunto_solicitacao', 'noTipoAssuntoSolicitacao', 'string');
     $rsm->addScalarResult('ds_solicitacao', 'dsSolicitacao', 'string');
     $rsm->addScalarResult('sq_pessoa_abertura', 'sqPessoaAbertura', 'integer');
     $rsm->addScalarResult('no_pessoa_abertura', 'noPessoaAbertura', 'string');
     $rsm->addScalarResult('sq_unidade_abertura', 'sqUnidadeAbertura', 'integer');
     $rsm->addScalarResult('no_unidade_abertura', 'noUnidadeAbertura', 'string');
     $rsm->addScalarResult('sq_tipo_status_solicitacao', 'sqTipoStatusSolicitacao', 'integer');
     $rsm->addScalarResult('no_tipo_status_solicitacao', 'noTipoStatusSolicitacao', 'string');
     $rsm->addScalarResult('sq_tipo_assunto_solicitacao', 'sqTipoAssuntoSolicitacao', 'integer');
     $rsm->addScalarResult('sq_pessoa_responsavel', 'sqPessoaResponsavel', 'integer');
     $rsm->addScalarResult('has_image', 'hasImage', 'boolean');
     $rsm->addScalarResult('no_pessoa_atendimento', 'noPessoaAtendimento', 'string');
     $rsm->addScalarResult('dt_operacao', 'dtOperacao', 'string');
     $rsm->addScalarResult('dt_solicitacao', 'dtSolicitacao', 'string');
     $rsm->addScalarResult('nu_artefato', 'nuArtefato', 'string');
     $rsm->addScalarResult('nu_digital', 'nuDigital', 'string');
     $rsm->addScalarResult('sq_tipo_artefato', 'sqTipoArtefato', 'string');
     $rsm->addScalarResult('tx_email', 'txEmail', 'string');
     $rsm->addScalarResult('total_record', 'totalRecord', 'integer');
     $sql = "SELECT COUNT(s.sq_solicitacao) OVER() AS total_record,\n                        s.sq_solicitacao,\n                        s.sq_artefato,\n                        tas.no_tipo_assunto_solicitacao,\n                        s.ds_solicitacao,\n                        s.sq_pessoa as sq_pessoa_abertura,\n                        s.dt_solicitacao,\n                        pes_abertura.no_pessoa || (COALESCE('<br>(' || tel.nu_ddd || ') ' || tel.nu_telefone, '')) as no_pessoa_abertura,\n                        s.sq_unidade_org as sq_unidade_abertura,\n                        und_abertura.sg_unidade_org as no_unidade_abertura,\n                        uss.sq_tipo_status_solicitacao,\n                        uss.no_tipo_status_solicitacao,\n                        tas.sq_tipo_assunto_solicitacao,\n                        uss.sq_pessoa_responsavel,\n                        pes_atendimento.no_pessoa as no_pessoa_atendimento,\n                        uss.dt_operacao,\n                        CASE\n                         WHEN at.nu_digital IS NOT NULL THEN\n                            sgdoce.formata_numero_digital(at.nu_digital)\n                         ELSE\n                            sgdoce.formata_numero_artefato(at.nu_artefato, ap.co_ambito_processo)\n                        END AS nu_artefato,\n                        sgdoce.formata_numero_digital(at.nu_digital) as nu_digital,\n                        taa.sq_tipo_artefato,\n                        EXISTS\n                        (\n                            SELECT\n                                 uia.sq_artefato\n                             FROM\n                                 sgdoce.vw_ultima_imagem_artefato uia\n                             WHERE\n                                 uia.sq_artefato = at.sq_artefato AND\n                                 taa.sq_tipo_artefato = " . \Core_Configuration::getSgdoceTipoArtefatoDocumento() . "\n                        UNION\n                            SELECT\n                                artv.sq_artefato_filho\n                            FROM\n                                sgdoce.artefato_vinculo artv\n                            JOIN sgdoce.artefato_imagem uia ON  uia.st_ativo and artv.sq_artefato_filho = uia.sq_artefato\n                                AND artv.sq_tipo_vinculo_artefato = " . \Core_Configuration::getSgdoceTipoVinculoArtefatoAutuacao() . "\n                            WHERE\n                                artv.sq_artefato_pai = at.sq_artefato AND\n                                taa.sq_tipo_artefato = " . \Core_Configuration::getSgdoceTipoArtefatoProcesso() . "\n                        ) has_image,\n                        em.tx_email\n                   FROM sgdoce.solicitacao s\n                   JOIN sgdoce.tipo_assunto_solicitacao     AS tas USING(sq_tipo_assunto_solicitacao)\n                   LEFT JOIN\n                   (\n                       sgdoce.artefato AS at\n                       INNER JOIN sgdoce.tipo_artefato_assunto AS taa\n                           ON at.sq_tipo_artefato_assunto = taa.sq_tipo_artefato_assunto\n                   )                                        ON s.sq_artefato = at.sq_artefato\n                   LEFT JOIN sgdoce.artefato_processo AS ap ON at.sq_artefato = ap.sq_artefato\n                   JOIN corporativo.vw_pessoa               AS pes_abertura ON s.sq_pessoa = pes_abertura.sq_pessoa\n                   LEFT JOIN corporativo.vw_telefone        AS tel ON (tel.sq_pessoa = pes_abertura.sq_pessoa AND tel.sq_tipo_telefone = " . \Core_Configuration::getCorpTipoTelefoneInstitucional() . ")\n                   JOIN corporativo.vw_unidade_org          AS und_abertura ON s.sq_unidade_org = und_abertura.sq_pessoa\n                   JOIN sgdoce.vw_ultimo_status_solicitacao AS uss ON s.sq_solicitacao = uss.sq_solicitacao\n              LEFT JOIN corporativo.vw_pessoa               AS pes_atendimento ON uss.sq_pessoa_responsavel = pes_atendimento.sq_pessoa\n              LEFT JOIN corporativo.vw_email                AS em ON em.sq_pessoa = s.sq_pessoa AND em.sq_tipo_email = " . \Core_Configuration::getCorpTipoEmailInstitucional() . "\n                  %s\n              ORDER BY s.dt_solicitacao DESC";
     if ($where != "") {
         $sql = sprintf($sql, "WHERE {$where}");
     } else {
         $sql = sprintf($sql, "");
     }
     return $this->_em->createNativeQuery($sql, $rsm)->useResultCache(false);
 }
Exemplo n.º 9
0
 public function saveFirstPieceAction()
 {
     $this->getHelper('layout')->disableLayout();
     $this->_helper->viewRenderer->setNoRender(TRUE);
     $params = $this->_getAllParams();
     try {
         $this->_checkAcl();
         $this->getService('ArtefatoVinculo')->inserirPeca(array('parent' => $this->getService()->find((int) $params['parent']), 'child' => $this->getService()->find((int) $params['child'])), \Core_Configuration::getSgdoceTipoVinculoArtefatoAutuacao());
         $this->_helper->json(array("status" => TRUE, "message" => 'MN013'));
     } catch (\Exception $e) {
         $this->_trataException($e);
     }
 }
 /**
  * Metódo que verifica se o modelo está cadastrado.
  * @return json
  */
 public function saveCapaAction()
 {
     $params = $this->_getAllParams();
     $this->getHelper('layout')->disableLayout();
     $this->_helper->viewRenderer->setNoRender(TRUE);
     $data = $this->_request->getPost();
     $data['nuArtefato'] = str_replace('-', '', str_replace('.', '', str_replace('/', '', $data['nuArtefato'])));
     $data = $this->getService('MinutaEletronica')->fixNewlines($data);
     $data = $this->getService('Artefato')->validarDataPrazo($data);
     $this->getRequest()->setPost($data);
     // salva o artefato_vinculo
     $params['sqArtefatoPai'] = $data['artefatoPai'];
     $params['sqArtefatoFilho'] = $data['sqArtefato'];
     $params['sqTipoVinculoArtefato'] = \Core_Configuration::getSgdoceTipoVinculoArtefatoAutuacao();
     $params['dtVinculo'] = new \Zend_Date();
     $params['inOriginal'] = FALSE;
     $optionsDtoVinculo = array('entity' => 'Sgdoce\\Model\\Entity\\ArtefatoVinculo', 'mapping' => array('sqArtefatoPai' => array('sqArtefato' => 'Sgdoce\\Model\\Entity\\Artefato'), 'sqArtefatoFilho' => array('sqArtefato' => 'Sgdoce\\Model\\Entity\\Artefato'), 'sqTipoVinculoArtefato' => array('sqTipoVinculoArtefato' => 'Sgdoce\\Model\\Entity\\TipoVinculoArtefato')));
     $dtoVinculo = Core_Dto::factoryFromData($params, 'entity', $optionsDtoVinculo);
     $return = $this->getService('ArtefatoVinculo')->findVinculo($dtoVinculo);
     if (!$return && $data['artefatoPai'] != '') {
         $params['id'] = $params['sqArtefatoPai'];
         $this->getService('ArtefatoVinculo')->save($dtoVinculo);
         $this->getService('ArtefatoVinculo')->finish($dtoVinculo);
     }
     $this->_save();
     $this->getService()->finish();
     $this->_helper->json(array('sucess' => 'true'));
 }
Exemplo n.º 11
0
 public function getFirstPiece(\Core_Dto_Search $dto)
 {
     $data = $this->_getRepository('app:ArtefatoVinculo')->findBy(array('sqArtefatoPai' => $dto->getSqArtefato(), 'sqTipoVinculoArtefato' => \Core_Configuration::getSgdoceTipoVinculoArtefatoAutuacao()));
     return current($data);
 }
Exemplo n.º 12
0
 /**
  * @return boolean
  */
 public function isDocumentoAutuado($nuDigital, $withMessage = false)
 {
     $entity = $this->findBy(array('nuDigital' => $nuDigital));
     $entity = current($entity);
     $data = $this->_getRepository('app:ArtefatoVinculo')->findBy(array('sqArtefatoFilho' => $entity->getSqArtefato(), 'sqTipoVinculoArtefato' => \Core_Configuration::getSgdoceTipoVinculoArtefatoAutuacao()));
     if (count($data)) {
         if ($withMessage) {
             $this->getMessaging()->addErrorMessage("Documento já autuado.", "User");
             $this->getMessaging()->dispatchPackets();
         }
         return true;
     }
     return false;
 }