/**
  *
  * @param \Core_Dto_Search $dto
  * @return \Doctrine\DBAL\Query\QueryBuilder
  */
 public function listGrid(\Core_Dto_Search $dto)
 {
     $rsm = new \Doctrine\ORM\Query\ResultSetMapping();
     $rsm->addScalarResult('total_record', 'totalRecord', 'integer');
     $rsm->addScalarResult('sq_artefato', 'sqArtefato', 'integer');
     $rsm->addScalarResult('digital_numero', 'digitalNumero', 'string');
     $rsm->addScalarResult('dt_arquivamento', 'dtArquivamento', 'zenddate');
     $rsm->addScalarResult('no_pessoa_arquivamento', 'noPessoaArquivamento', 'string');
     $rsm->addScalarResult('tx_assunto', 'txAssunto', 'string');
     $rsm->addScalarResult('no_tipo_documento', 'noTipoDocumento', 'string');
     $rsm->addScalarResult('no_pessoa_origem', 'noPessoaOrigem', 'string');
     $caseNuDigital = "sgdoce.formata_numero_digital(a.nu_digital)";
     $sql = "\n               SELECT DISTINCT\n                      COUNT(a.sq_artefato) OVER() AS total_record\n                      ,a.sq_artefato\n                      ,COALESCE({$caseNuDigital}, formata_numero_artefato(a.nu_artefato,ap.co_ambito_processo)) AS digital_numero\n                      ,dt_arquivamento\n                      ,p.no_pessoa as no_pessoa_arquivamento\n                      ,ass.tx_assunto\n                      ,td.no_tipo_documento\n                      ,ps.no_pessoa AS no_pessoa_origem\n                 FROM artefato_arquivo_setorial aas\n                 JOIN vw_pessoa p ON aas.sq_pessoa_arquivamento = p.sq_pessoa\n                 JOIN artefato a USING(sq_artefato)\n                 JOIN sgdoce.tipo_artefato_assunto taa USING(sq_tipo_artefato_assunto)\n                 JOIN sgdoce.assunto ass ON ass.sq_assunto = taa.sq_assunto\n                 JOIN sgdoce.pessoa_artefato pa ON pa.sq_artefato = a.sq_artefato and pa.sq_pessoa_funcao = %1\$d\n                 JOIN sgdoce.pessoa_sgdoce ps ON ps.sq_pessoa_sgdoce = pa.sq_pessoa_sgdoce\n            LEFT JOIN artefato_processo ap ON a.sq_artefato = ap.sq_artefato\n            LEFT JOIN tipo_documento td USING(sq_tipo_documento)\n                WHERE dt_desarquivamento IS NULL\n                  AND sq_unidade_arquivamento = %2\$d\n                  AND sq_tipo_artefato = %3\$d\n                  %4\$s\n             ORDER BY dt_arquivamento DESC";
     $optionalCondition = '';
     $search = mb_strtolower($dto->getSearch(), 'UTF-8');
     if ($search) {
         $queryBuild = $this->_em->createQueryBuilder();
         if ($dto->getSqTipoArtefato() == \Core_Configuration::getSgdoceTipoArtefatoProcesso()) {
             $nuArtefato = $this->_em->createQueryBuilder()->expr()->lower("TRANSLATE(a.nu_artefato, './-', '')")->__toString();
             $optionalCondition = " AND (" . $queryBuild->expr()->eq('a.nu_artefato', $queryBuild->expr()->literal($search))->__toString() . " OR " . $queryBuild->expr()->eq($nuArtefato, $queryBuild->expr()->literal(str_replace(array('.', '/', '-'), '', $search)))->__toString() . ")";
         } else {
             $optionalCondition = " AND " . $queryBuild->expr()->eq('a.nu_digital', $search)->__toString();
         }
     }
     $strSql = sprintf($sql, \Core_Configuration::getSgdocePessoaFuncaoOrigem(), \Core_Integration_Sica_User::getUserUnit(), $dto->getSqTipoArtefato(), $optionalCondition);
     return $this->_em->createNativeQuery($strSql, $rsm)->useResultCache(false);
 }
Esempio n. 2
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);
 }
Esempio n. 3
0
 /**
  *
  * @param \Core_Dto_Search $dto
  * @return array
  */
 public function listGrid(\Core_Dto_Search $dto)
 {
     $rsm = new \Doctrine\ORM\Query\ResultSetMapping($this->_em);
     $rsm->addScalarResult('sq_caixa', 'sqCaixa', 'integer');
     $rsm->addScalarResult('sq_artefato', 'sqArtefato', 'integer');
     $rsm->addScalarResult('sq_tipo_artefato', 'sqTipoArtefato', 'integer');
     $rsm->addScalarResult('nu_artefato', 'nuArtefato', 'string');
     $rsm->addScalarResult('no_tipo_documento', 'noTipoDocumento', 'string');
     $rsm->addScalarResult('tx_classificacao', 'txClassificacao', 'string');
     $rsm->addScalarResult('nu_classificacao', 'nuClassificacao', 'string');
     $rsm->addScalarResult('no_pessoa_origem', 'noPessoaOrigem', 'string');
     $rsm->addScalarResult('tx_assunto', 'txAssunto', 'string');
     $strQuery = sprintf("SELECT ca.sq_caixa\n                        ,art.sq_artefato\n                        ,CASE WHEN (taa.sq_tipo_artefato = %d) THEN art.nu_artefato ELSE art.nu_digital::TEXT END AS nu_artefato\n                        ,td.no_tipo_documento\n                        ,taa.sq_tipo_artefato\n                        ,cl.nu_classificacao || ' - ' ||cl.tx_classificacao as tx_classificacao\n\n                        ,ps.no_pessoa AS no_pessoa_origem\n                        ,ass.tx_assunto\n                   FROM caixa_artefato ca\n             INNER JOIN caixa cx                    using(sq_caixa)\n             INNER JOIN artefato art                 using(sq_artefato)\n             INNER JOIN tipo_documento td            using(sq_tipo_documento)\n             INNER JOIN tipo_artefato_assunto taa    using(sq_tipo_artefato_assunto)\n             INNER JOIN assunto ass                  using(sq_assunto)\n             INNER JOIN artefato_classificacao ac    using(sq_artefato)\n             INNER JOIN classificacao cl             ON ac.sq_classificacao = cl.sq_classificacao\n             INNER JOIN pessoa_artefato pa           using(sq_artefato)\n             INNER JOIN pessoa_sgdoce ps             using(sq_pessoa_sgdoce)\n                  WHERE ca.sq_caixa = %d\n                    AND pa.sq_pessoa_funcao = %d", \Core_Configuration::getSgdoceTipoArtefatoProcesso(), $dto->getSqCaixa(), \Core_Configuration::getSgdocePessoaFuncaoOrigem());
     $nativeQuery = $this->_em->createNativeQuery($strQuery, $rsm);
     return $nativeQuery;
 }
Esempio n. 4
0
 public function searchPessoaOrigem($dto)
 {
     $queryBuilder = $this->_em->createQueryBuilder()->select('pf.sqPessoaFuncao', 'ps.noPessoa')->from('app:PessoaArtefato', 'pa')->innerJoin('pa.sqPessoaFuncao', 'pf')->innerJoin('pa.sqPessoaSgdoce', 'ps')->where('pf.sqPessoaFuncao in(' . \Core_Configuration::getSgdocePessoaFuncaoOrigem() . ')');
     if (method_exists($dto, 'query')) {
         $query = mb_strtolower($dto->getQuery(), 'UTF-8');
         $queryBuilder->andWhere('LOWER(ps.noPessoa) like :noPessoa')->setParameter('noPessoa', '%' . $query . '%');
     } else {
         $queryBuilder->andWhere('pa.sqArtefato = :sqPessoaArtefato')->setParameter('sqPessoaArtefato', $dto->getSqPessoaArtefato()->getSqArtefato()->getSqArtefato());
     }
     $queryBuilder->orderBy('ps.noPessoa');
     $res = $queryBuilder->getQuery()->getArrayResult();
     $out = array();
     foreach ($res as $item) {
         $out[$item['sqPessoaFuncao']] = $item['noPessoa'];
     }
     return $out;
 }
Esempio n. 5
0
 public function getPessoaOrigemArtefato($dto)
 {
     $queryBuilder = $this->_em->createQueryBuilder()->select('ptd.sqPosicaoTipoDocumento,
                 pd.sqPosicaoData,
                 c.sqCabecalho,
                 c.deArquivoImagem,
                 c.txCabecalho,
                 ens.txEndereco,
                 ens.nuEndereco,
                 m.noMunicipio,
                 am.txEmenta,
                 ens.coCep,
                 ts.nuTelefone,
                 ts.nuDdd,
                 ems.txEmail,
                 td.noTipoDocumento,
                 a.nuArtefato,
                 a.nuDigital,
                 a.dtArtefato,
                 a.noCargoInterno,
                 ps.noPessoa,
                 ass.txAssunto,
                 am.txReferencia,
                 am.txTextoArtefato,
                 a.txDescricaoPrazo,
                 a.inDiasCorridos,
                 a.nuDiasPrazo,
                 a.txAssuntoComplementar,
                 f.noFecho,
                 a.sqArtefato,
                 a.dtPrazo')->from('app:ArtefatoMinuta', 'am')->innerJoin('am.sqArtefato', 'a')->innerJoin('a.sqPessoaArtefato', 'pa')->innerJoin('pa.sqPessoaFuncao', 'pf')->innerJoin('pa.sqPessoaSgdoce', 'ps')->leftJoin('pa.sqEnderecoSgdoce', 'ens')->leftJoin('pa.sqEmailSgdoce', 'ems')->leftJoin('pa.sqTelefoneSgdoce', 'ts')->leftJoin('am.sqMunicipio', 'm')->innerJoin('am.sqModeloDocumento', 'md')->innerJoin('md.sqPosicaoData', 'pd')->leftJoin('md.sqCabecalho', 'c')->leftJoin('md.sqPosicaoTipoDocumento', 'ptd')->leftJoin('md.sqPosicaoData', 'pdt')->innerJoin('md.sqTipoDocumento', 'td')->leftJoin('md.sqAssunto', 'ass')->leftJoin('a.sqFecho', 'f')->andWhere('a.sqArtefato = :sqArtefato')->setParameter('sqArtefato', $dto->getSqArtefato())->andWhere('pf.sqPessoaFuncao = :sqPessoaFuncao')->setParameter('sqPessoaFuncao', \Core_Configuration::getSgdocePessoaFuncaoOrigem());
     $resultQuery = $queryBuilder->getQuery()->execute();
     if (count($resultQuery) > 0) {
         return $resultQuery[0];
     }
     return FALSE;
 }
Esempio n. 6
0
 /**
  * Metódo que realiza a persistencia de ORIGEM
  * @param Object $entity
  * @param Object $dto
  * @return Object
  */
 protected function _salvaOrigem($entity, $dto = NULL)
 {
     // colocando valores em variaves genericas
     //         $cpfCnpjPassaport = $this->retornaRegistro($dto);
     switch ($dto->getProcedenciaInterno()) {
         case 'externo':
             $stProcedencia = FALSE;
             break;
         case 'interno':
             $stProcedencia = TRUE;
             break;
         default:
             $stProcedencia = NULL;
             break;
     }
     $filter = new \Zend_Filter_Digits();
     if ($dto->getSqTipoPessoaOrigem() != '') {
         $sqTipoPessoa = $dto->getSqTipoPessoaOrigem();
     } else {
         $sqTipoPessoa = $dto->getSqTipoPessoaOrigemIcmbio();
     }
     if ($dto->getSqPessoaOrigem() != '') {
         $sqPessoaOrigem = $dto->getSqPessoaOrigem();
     } else {
         $sqPessoaOrigem = $dto->getSqPessoaIcmbio();
     }
     if ($dto->getSqPessoaOrigem_autocomplete()) {
         $noPessoaOrigem = $dto->getSqPessoaOrigem_autocomplete();
     } else {
         $noPessoaOrigem = $dto->getSqPessoaIcmbio_autocomplete();
     }
     if ($sqPessoaOrigem != 0) {
         $data['sqPessoaCorporativo'] = $sqPessoaOrigem;
         $dtoPessoaSearch = \Core_Dto::factoryFromData($data, 'search');
         $cpfCnpjPassaport = $this->getServiceLocator()->getService('VwPessoa')->returnCpfCnpjPassaporte($dtoPessoaSearch);
         $cpfCnpjPassaport = $filter->filter($cpfCnpjPassaport);
     }
     // verificando se existe Pessoa cadastrada no PessoaSgdoce
     $entPessoaSgdoce = $this->searchPessoaSgdoce($sqPessoaOrigem);
     // Se nao existir registro na base de PessoaSgdoce, verifica se é PF ou PJ e recupera as informacoes
     // na base Corporativo e realiza o cadastro na base de PessoaSgdoce
     if (!count($entPessoaSgdoce)) {
         // Não existindo registro em PessoaSgdoce, faz cadastro na mesma
         $entPessoaSgdoce = $this->addPessoaSgdoce($sqPessoaOrigem, $noPessoaOrigem, $cpfCnpjPassaport);
         $entPessoaSgdoce->setNuCpfCnpjPassaporte($cpfCnpjPassaport);
         // retorna o numero do registro
         $criteriaTpPessoa = array('sqTipoPessoa' => $sqTipoPessoa);
         $entPessoaSgdoce->setSqTipoPessoa($this->_getRepository('app:VwTipoPessoa')->findOneBy($criteriaTpPessoa));
     }
     $this->getEntityManager()->persist($entPessoaSgdoce);
     $entPessoaSgdoce->setNuCpfCnpjPassaporte($cpfCnpjPassaport);
     $this->getEntityManager()->flush($entPessoaSgdoce);
     // cadastra e retorna PessoaArtefato
     $entityPessoaArtefato = $this->cadastrarPessoaArtefato($entity, $entPessoaSgdoce, \Core_Configuration::getSgdocePessoaFuncaoOrigem());
     $entityPessoaArtefato->setStProcedencia($stProcedencia);
     $this->getEntityManager()->persist($entityPessoaArtefato);
     $this->getEntityManager()->flush($entityPessoaArtefato);
     return $entityPessoaArtefato;
 }
Esempio n. 7
0
 /**
  * Metódo que realiza o save da Origem e Autor da Minuta
  */
 public function saveOrigemAutor($entity, $unidadeEntity, $pessoaEntity)
 {
     $criteria = array('sqPessoaCorporativo' => $pessoaEntity->getSqPessoa());
     $entityAux1 = $this->_getRepository('app:PessoaSgdoce')->findOneBy($criteria);
     if (!$entityAux1) {
         $entityAux1 = $this->_newEntity('app:PessoaSgdoce');
     }
     $entityAux1->setSqPessoaCorporativo($pessoaEntity);
     $entityTipoPessoa = $this->getEntityManager()->getPartialReference('app:VwTipoPessoa', \Core_Configuration::getSgdoceTipoPessoaPessoaFisica());
     $entityAux1->setNoPessoa($pessoaEntity->getNoPessoa());
     $entityAux1->setSqTipoPessoa($entityTipoPessoa);
     $this->getEntityManager()->persist($entityAux1);
     $this->getEntityManager()->flush($entityAux1);
     $entityPessoaArtefato = $this->_newEntity('app:PessoaArtefato');
     $entityArtefato = $this->getEntityManager()->getPartialReference('app:Artefato', $entity->getSqArtefato()->getSqArtefato());
     $entityPessoaFuncao = $this->getEntityManager()->getPartialReference('app:PessoaFuncao', \Core_Configuration::getSgdocePessoaFuncaoAutor());
     $entityPessoaArtefato->setSqArtefato($entityArtefato);
     $entityPessoaArtefato->setSqPessoaSgdoce($entityAux1);
     $entityPessoaArtefato->setSqPessoaFuncao($entityPessoaFuncao);
     //grava demais dados,endereco,email,telefone
     $this->saveComplementoPessoa($entityPessoaArtefato, $pessoaEntity, $entityAux1);
     $this->getEntityManager()->persist($entityPessoaArtefato);
     $this->getEntityManager()->flush($entityPessoaArtefato);
     $vwPessoa = $this->getServiceLocator()->getService('VwPessoa')->find($unidadeEntity->getSqUnidadeOrg());
     $criteria = array('sqPessoaCorporativo' => $vwPessoa->getSqPessoa());
     $entityAux2 = $this->_getRepository('app:PessoaSgdoce')->findOneBy($criteria);
     if (!$entityAux2) {
         $entityAux2 = $this->_newEntity('app:PessoaSgdoce');
     }
     $entityAux2->setSqPessoaCorporativo($vwPessoa);
     $entityTipoPessoa = $this->getEntityManager()->getPartialReference('app:VwTipoPessoa', \Core_Configuration::getSgdoceTipoPessoaMinisterioPublico());
     $entityPessoaFuncao = $this->getEntityManager()->getPartialReference('app:PessoaFuncao', \Core_Configuration::getSgdocePessoaFuncaoOrigem());
     $entityAux2->setNoPessoa($unidadeEntity->getNoUnidadeOrg());
     $entityAux2->setSqTipoPessoa($entityTipoPessoa);
     $this->getEntityManager()->persist($entityAux2);
     $this->getEntityManager()->flush($entityPessoaArtefato);
     $entityPessoaArtefato = $this->_newEntity('app:PessoaArtefato');
     $entityPessoaArtefato->setSqArtefato($entityArtefato);
     $entityPessoaArtefato->setSqPessoaFuncao($entityPessoaFuncao);
     $entityPessoaArtefato->setSqPessoaSgdoce($entityAux2);
     $this->saveComplementoPessoa($entityPessoaArtefato, $pessoaEntity, $entityAux2);
     $this->getEntityManager()->persist($entityPessoaArtefato);
     $this->getEntityManager()->flush($entityPessoaArtefato);
 }
Esempio n. 8
0
 /**
  * método que retorna dados para grid da área de trabalho
  * @param \Core_Dto_Abstract $dto
  * @return \Doctrine\ORM\QueryBuilder
  */
 public function listGridAreaTrabalho(\Core_Dto_Search $dto)
 {
     $search = mb_strtolower($dto->getSearch(), 'UTF-8');
     /*
      *  se $search is numeric "is_numeric($search)" // procura nas colunas numericas (nuDigital, nuArtefato)
      *
      * caso contrario procura em todas as colunas com "OR"
      *
      */
     $subQuery = $this->_em->createQueryBuilder()->select('max(hh.sqHistoricoArtefato)')->from('app:HistoricoArtefato', 'hh')->where('hh.sqArtefato = hia.sqArtefato');
     $queryBuilder = $this->_em->createQueryBuilder();
     $query = $queryBuilder->select('a.sqArtefato', 'IDENTITY(a.nuDigital) as nuDigital', 'a.nuArtefato', 'a.dtArtefato', 'td.noTipoDocumento as tipo', 'td.inAbreProcesso', 'ass.txAssunto as assunto', 'ps.noPessoa as origem')->distinct('a.sqArtefato')->from('app:Artefato', 'a')->innerJoin('a.sqHistoricoArtefato', 'hia')->leftJoin('a.sqTipoDocumento', 'td')->innerJoin('a.sqTipoArtefatoAssunto', 'tas')->innerJoin('tas.sqAssunto', 'ass')->innerJoin('a.sqPessoaArtefato', 'pa', 'WITH', 'pa.sqPessoaFuncao = :sqPessoaFuncao')->innerJoin('pa.sqPessoaSgdoce', 'ps', 'WITH')->andWhere('tas.sqTipoArtefato = :sqTipoArtefato')->andWhere('hia.sqPessoa = :sqPessoa')->andWhere('hia.sqHistoricoArtefato = (' . $subQuery->getDQL() . ')')->setParameter('sqPessoa', $dto->sqPessoa)->setParameter('sqTipoArtefato', $dto->sqTipoArtefato)->setParameter('sqPessoaFuncao', \Core_Configuration::getSgdocePessoaFuncaoOrigem())->orderBy('a.sqArtefato');
     //        if($search){
     //            $nuArtefato = $queryBuilder->expr()
     //            ->lower($queryBuilder->expr()->trim('a.nuArtefato'));
     //
     //            if (is_numeric($search)) {
     //                $query->orWhere('a.nuDigital = :search');
     //
     //
     //                $query->orWhere($queryBuilder->expr()->like(
     //                            'clear_accentuation(' . $nuArtefato .')',
     //                            $queryBuilder->expr()
     //                                ->literal($this->removeAccent('%' . $search . '%'))
     //                        )
     //                    );
     //            }else{
     //
     //            }
     //            $query->setParameter('search', $search);
     //        }
     return $query;
 }
Esempio n. 9
0
 /**
  * Metódo que realiza o save da pessoa interessa e assinante.
  */
 public function saveExtraPessoa($entity, $entityArtefatoClone, $entityArtefato)
 {
     //grava pessoa interessada artefato
     $entityInteressadaArtefato = $this->_getRepository('app:PessoaInteressadaArtefato')->findBy(array('sqArtefato' => $entity->getSqArtefato()->getSqArtefato()));
     if (is_array($entityInteressadaArtefato)) {
         foreach ($entityInteressadaArtefato as $entityInteressada) {
             $entityInteressadaClone = clone $entityInteressada;
             $entityInteressadaClone->setSqArtefato($entityArtefatoClone);
             $this->getEntityManager()->persist($entityInteressadaClone);
             $this->getEntityManager()->flush($entityInteressadaClone);
         }
     }
     //grava pessoa interessada artefato
     $entityAssinanteArtefato = $this->_getRepository('app:PessoaAssinanteArtefato')->findBy(array('sqArtefato' => $entity->getSqArtefato()->getSqArtefato()));
     if (is_array($entityAssinanteArtefato)) {
         foreach ($entityAssinanteArtefato as $entityAssinante) {
             $entityAssinanteClone = clone $entityAssinante;
             $entityAssinanteClone->setSqArtefato($entityArtefatoClone);
             $this->getEntityManager()->persist($entityAssinanteClone);
             $this->getEntityManager()->flush($entityAssinanteClone);
         }
     }
     //grava pessoa motivacao artefato
     $entityMotivacaoArtefato = $this->_getRepository('app:Motivacao')->findBy(array('sqArtefato' => $entity->getSqArtefato()->getSqArtefato()));
     if (is_array($entityMotivacaoArtefato)) {
         foreach ($entityMotivacaoArtefato as $entityMotivacao) {
             $entityMotivacaoClone = clone $entityMotivacao;
             $entityMotivacaoClone->setSqArtefato($entityArtefatoClone);
             $this->getEntityManager()->persist($entityMotivacaoClone);
             $this->getEntityManager()->flush($entityMotivacaoClone);
         }
     }
     //grava rodape
     $criteria = array('sqArtefato' => $entityArtefato->getSqArtefato(), 'sqPessoaFuncao' => \Core_Configuration::getSgdocePessoaFuncaoDadosRodape());
     $entityRodapeArtefato = $this->_getRepository('app:PessoaArtefato')->findOneBy($criteria);
     if ($entityRodapeArtefato) {
         $entityRodapeArtefatoClone = clone $entityRodapeArtefato;
         $entityRodapeArtefatoClone->setSqArtefato($entityArtefatoClone);
         $this->getEntityManager()->persist($entityRodapeArtefatoClone);
         $this->getEntityManager()->flush($entityRodapeArtefatoClone);
     }
     //grava o artefato minuta
     $entityArtefatoMinuta = $this->_getRepository()->find($entity->getSqArtefato()->getSqArtefato());
     $entityArtefatoMinutaClone = clone $entityArtefatoMinuta;
     $entityArtefatoMinutaClone->setSqArtefato($entityArtefatoClone);
     $this->getEntityManager()->persist($entityArtefatoMinutaClone);
     $this->getEntityManager()->flush($entityArtefatoMinutaClone);
     //save historico
     $criteria = array('sqArtefato' => $entity->getSqArtefato()->getSqArtefato());
     $entityHistorico = $this->_getRepository('app:HistoricoArtefato')->findBy($criteria);
     $entityHistoricoClone = clone $entityHistorico[0];
     $entityHistoricoClone->setSqArtefato($entityArtefatoClone);
     $this->getEntityManager()->persist($entityHistoricoClone);
     $this->getEntityManager()->flush($entityHistoricoClone);
     //save origem
     $entityOrigemSgdoce = $this->getPessoaSgdoce($entity, \Core_Configuration::getSgdocePessoaFuncaoOrigem());
     $entityOrigemSgdoceClone = clone $entityOrigemSgdoce[0];
     $entityOrigemSgdoceClone->setSqArtefato($entityArtefatoClone);
     $this->getEntityManager()->persist($entityOrigemSgdoceClone);
     $this->getEntityManager()->flush($entityOrigemSgdoceClone);
     //save autor
     $entityAutorSgdoce = $this->getPessoaSgdoce($entity, \Core_Configuration::getSgdocePessoaFuncaoAutor());
     $entityAutorSgdoceClone = clone $entityAutorSgdoce[0];
     $entityAutorSgdoceClone->setSqArtefato($entityArtefatoClone);
     $this->getEntityManager()->persist($entityAutorSgdoceClone);
     $this->getEntityManager()->flush($entityAutorSgdoceClone);
 }
 /**
  * Método que retorna os dados da Origem
  * @param unknown_type $dtoArtefato
  */
 public function returnDadosOrigem($dtoArtefato)
 {
     return self::_dadosPessoaDocumento($dtoArtefato, \Core_Configuration::getSgdocePessoaFuncaoOrigem());
 }
 /**
  * (non-PHPdoc)
  * @see Core_Controller_Action_CrudDto::editAction()
  */
 public function formDataAction()
 {
     parent::combos();
     parent::editAction();
     $params = $this->_getAllParams();
     $params['sqArtefato'] = $params['id'];
     $this->view->redirect = $params['view'];
     $dtoSearch = Core_Dto::factoryFromData($params, 'search');
     $artefatoPai = $this->_getParam('artefatopai');
     $sqArtefatoPai = $this->getService()->findSqArtefatoPai($dtoSearch);
     $this->view->sqArtefatoPai = !empty($artefatoPai) ? $artefatoPai : $sqArtefatoPai[0]->getSqArtefatoFilho()->getSqArtefato();
     $this->view->dataPost = $this->_helper->persist->get('dataPost');
     $this->view->data = $this->getService()->find($this->_getParam('id'));
     $entityArtefatoProcesso = $this->getService('ArtefatoProcesso')->find($this->_getParam('id'));
     if ($entityArtefatoProcesso) {
         $this->view->sqEstado = $entityArtefatoProcesso->getSqEstado()->getSqEstado();
         $this->view->sqMunicipio = $entityArtefatoProcesso->getSqMunicipio()->getSqMunicipio();
         $this->view->coAmbitoProcesso = $entityArtefatoProcesso->getCoAmbitoProcesso();
         $this->view->nuPaginaProcesso = $entityArtefatoProcesso->getNuPaginaProcesso();
     }
     $this->view->dadosOrigem = self::_dadosPessoaDocumento($dtoSearch, \Core_Configuration::getSgdocePessoaFuncaoOrigem());
 }
Esempio n. 12
0
 /**
  *
  * @param array $data
  * @param integer $sqArtefato
  */
 private function _getProcessChildrenDocument(array &$data, $sqArtefato)
 {
     $dto = \Core_Dto::factoryFromData(array('sqArtefato' => $sqArtefato, 'sqTipoArtefato' => \Core_Configuration::getSgdoceTipoArtefatoDocumento(), 'sqPessoaFuncao' => \Core_Configuration::getSgdocePessoaFuncaoOrigem()), 'search');
     $children = $this->getEntityManager()->getRepository('app:ArtefatoVinculo')->findProcessGuiaDocument($dto);
     $data = array_merge($data, $children);
 }
Esempio n. 13
0
 public function searchDocumentsFirstPiece(\Core_Dto_Search $dto)
 {
     $sqArtefato = $dto->getExtraParam();
     $rsPesArtOrigem = $this->_getRepository('app:PessoaArtefato')->findBy(array('sqArtefato' => $sqArtefato, 'sqPessoaFuncao' => \Core_Configuration::getSgdocePessoaFuncaoOrigem()));
     $entPesArtOrigem = current($rsPesArtOrigem);
     $isExterno = !$entPesArtOrigem->getStProcedencia();
     $configs = \Core_Registry::get('configs');
     $dataEntradaProducao = $configs['dataEntradaProducao'];
     $entArtefato = $this->_getRepository('app:Artefato')->find($sqArtefato);
     $dtCadastro = $entArtefato->getDtCadastro();
     $dtEntradaProducao = new \Zend_Date($dataEntradaProducao);
     $isLegado = false;
     if ($dtEntradaProducao->compare($dtCadastro)) {
         $isLegado = true;
     }
     $data = $this->_getRepository()->searchDocumentsToFirstPiece($dto, $isExterno, $isLegado);
     $sqTipoArtefato = $dto->getSqTipoArtefato();
     $field = "nuDigital";
     if ($sqTipoArtefato == \Core_Configuration::getSgdoceTipoArtefatoProcesso()) {
         $field = "nuArtefato";
     }
     $result = array();
     foreach ($data as $value) {
         $result[$value['sqArtefato']] = $value[$field];
     }
     return $result;
 }
Esempio n. 14
0
 /**
  * Obtén dados da pessoa de origem de uma minuta
  * @param $dto
  * @return array
  */
 public function getPessoaArtefatoOrigem($dto)
 {
     $query = $this->_em->createQueryBuilder();
     $query->select('p.sqPessoa,
         p.noPessoa,
         p.nuTelefone,
         p.coCep,
         p.txEndereco,
         p.nuNumeroEndereco,
         p.noBairro,
         p.txComplemento,
         p.txEnderecoEletronico,
         p.noProfissao,
         p.noUnidadeOrg,
         pf.noPessoaFuncao,
         m.noMunicipio,
         e.sgEstado,
         t.noTratamento,
         c.sqCabecalho,
         c.deArquivoImagem,
         c.txCabecalho,
         td.noTipoDocumento,
         a.deImagemRodape,
         a.nuArtefato,
         a.txEmenta,
         a.dtArtefato,
         a.deImagemRodape,
         a.txReferencia,
         ass.txAssunto,
         a.txTextoArtefato,
         a.dtPrazo,
         a.inDiasCorridos,
         a.txDescricaoPrazo,
         a.nuDiasPrazo,
         a.noCargoInterno,
         f.noFecho,
         md.sqModeloDocumento,
         ptd.sqPosicaoTipoDocumento,
         pdt.sqPosicaoData
         ')->from($this->_enName, 'p')->innerJoin('p.sqPessoaFuncao', 'pf')->leftJoin('p.sqTratamentoVocativo', 'tv')->leftJoin('tv.sqTratamento', 't')->innerJoin('p.sqArtefato', 'a')->leftJoin('a.sqMunicipio', 'm')->leftJoin('m.sqEstado', 'e')->leftJoin('a.sqFecho', 'f')->innerJoin('a.sqTipoArtefatoAssunto', 'taa')->innerJoin('taa.sqAssunto', 'ass')->innerJoin('a.sqModeloDocumento', 'md')->leftJoin('md.sqCabecalho', 'c')->leftJoin('md.sqPosicaoTipoDocumento', 'ptd')->leftJoin('md.sqPosicaoData', 'pdt')->innerJoin('md.sqTipoDocumento', 'td')->andWhere('pf.sqPessoaFuncao = :sqPessoaFuncao')->setParameter('sqPessoaFuncao', \Core_Configuration::getSgdocePessoaFuncaoOrigem())->andWhere('p.sqArtefato = :sqArtefato')->setParameter('sqArtefato', $dto->getSqArtefato()->getSqArtefato());
     if (empty($query)) {
         return NULL;
     }
     return $query->getQuery()->getSingleResult();
 }
Esempio n. 15
0
 public function verificaDocumentoAction()
 {
     $this->_helper->layout->disableLayout();
     $this->_helper->viewRenderer->setNoRender(TRUE);
     $params = $this->_getAllParams();
     $data = array();
     $data['nuArtefato'] = $params['nuArtefato'];
     $data['sqTipoDocumento'] = $params['sqTipoDocumento'];
     $params['sqPessoaCorporativo'] = null;
     if (isset($params['sqPessoaIcmbio']) && $params['sqPessoaIcmbio']) {
         $params['sqPessoaCorporativo'] = $params['sqPessoaIcmbio'];
     } else {
         if (isset($params['sqPessoaOrigem']) && $params['sqPessoaOrigem']) {
             $params['sqPessoaCorporativo'] = $params['sqPessoaOrigem'];
         }
     }
     $dto = Core_Dto::factoryFromData($params, 'search');
     $listTipoDocumentoCVD = $this->getService()->getTipoDocumentoComValidacaoDuplicidade();
     if ($dto->getStSemNumero() == 'true' && $dto->getStProcedencia() == 'true' && in_array($data['sqTipoDocumento'], $listTipoDocumentoCVD)) {
         $this->_helper->json(array('sucess' => 'false', 'msg' => 'MN159'));
     }
     $pessoaSgdoce = $this->getService('Pessoa')->findPessoaBySqCorporativo($dto);
     $resul = $this->getService('Artefato')->findBy($data);
     if ($params['divEdit'] == '0') {
         if (count($resul) > 0 && $dto->getStNumeroAutomatico() == 'false') {
             for ($i = 0; $i < count($resul); $i++) {
                 $pessoaArtefato = $this->getService('PessoaArtefato')->findOneBy(array('sqArtefato' => $resul[$i]->getSqArtefato(), 'sqPessoaSgdoce' => $pessoaSgdoce, 'sqPessoaFuncao' => \Core_Configuration::getSgdocePessoaFuncaoOrigem()));
                 if (count($pessoaArtefato) > 0) {
                     $this->_helper->json(array('sucess' => 'false', 'msg' => 'MN158'));
                     continue;
                 }
             }
             $this->_helper->json(array('sucess' => 'true'));
         } else {
             $this->_helper->json(array('sucess' => 'true'));
         }
     }
     $this->_helper->json(array('sucess' => 'true'));
 }
Esempio n. 16
0
 /**
  * @return void
  */
 protected function editActionExtension()
 {
     $params = $this->_getAllParams();
     $dtoCheckEdit = Core_Dto::factoryFromData(array('sqArtefato' => $params['id'], 'sqPessoa' => \Core_Integration_Sica_User::getPersonId()), 'search');
     //verifica se o artefato pode ser editado
     //        if (!$this->getService('AreaTrabalho')->canEditArtefact($dtoCheckEdit)) {
     //            $this->getMessaging()->addErrorMessage(
     //                    sprintf(\Core_Registry::getMessage()->translate('MN154'),
     //                            $this->view->data->getNuDigital()->getNuEtiqueta()));
     //            $this->_redirect('/artefato/area-trabalho');
     //        }
     $params['sqArtefato'] = $params['id'];
     $dtoSearch = Core_Dto::factoryFromData($params, 'search');
     $this->view->redirect = $params['view'];
     $this->view->user = $this->getUser();
     $this->getCombo();
     $this->view->isLoteEletronico = false;
     $this->view->eDigital = $this->view->data->getNuDigital();
     if ($this->view->data->getSqTipoDocumento()) {
         $this->view->isSIC = $this->view->data->getSqTipoDocumento()->getSqTipoDocumento() == \Core_Configuration::getSgdoceTipoDocumentoSic();
     } else {
         $this->view->isSIC = false;
     }
     $this->view->docSIC = $this->view->data->getSqTipoDocumento();
     $dtoSgdoceFisico = \Core_Dto::factoryFromData(array('nuDigital' => $this->view->data->getNuDigital()->getNuEtiqueta(), 'sqArtefato' => $this->view->data->getSqArtefato()), 'search');
     $this->view->dataSgdocFisico = $this->getService()->getDataSgdocFisico($dtoSgdoceFisico);
     $this->view->dataSgdocFisico = current($this->view->dataSgdocFisico);
     $this->view->listProcedenciaFisico = array('I' => 'Interno', 'E' => 'Externo');
     $this->view->nuInteressados = $this->getService('PessoaInterassadaArtefato')->countInteressadosArtefatoValido($dtoSgdoceFisico);
     $dto = Core_Dto::factoryFromData(array('sqPessoaCorporativo' => \Core_Configuration::getSgdoceUnidadeCgu(), 'sqTipoPessoa' => \Core_Configuration::getCorpTipoPessoaUnidadeExt()), 'search');
     $this->view->CGU = !$this->view->isSIC ? null : $this->getService('Pessoa')->getPessoa($dto);
     // retorno de valor para a view
     $this->view->tipoNavegacao = $dtoSearch->getA();
     $this->view->dataGrauAcesso = $this->getService('GrauAcessoArtefato')->getGrauAcessoArtefato($dtoSearch);
     $criteria = array('sqArtefato' => $params['sqArtefato'], 'sqPessoaFuncao' => \Core_Configuration::getSgdocePessoaFuncaoAssinatura());
     $this->view->assinanteArtefatoExterno = $this->getService('PessoaArtefato')->findOneBy($criteria);
     $this->view->assinanteArtefatoInterno = $this->getService('PessoaAssinanteArtefato')->getAssinanteArtefato($dtoSearch);
     $this->view->dadosOrigem = self::_dadosPessoaDocumento($dtoSearch, \Core_Configuration::getSgdocePessoaFuncaoOrigem());
     $this->view->dadosDestino = self::_dadosPessoaDocumento($dtoSearch, \Core_Configuration::getSgdocePessoaFuncaoDestinatario());
     $this->view->result = $this->getService('AnexoArtefato')->listGridAnexos($dtoSearch);
     if ($this->view->dadosDestino) {
         $sqTipoPessoa = $this->view->dadosDestino[0]->getSqPessoaSgdoce()->getSqTipoPessoa()->getSqTipoPessoa();
         if ($sqTipoPessoa == \Core_Configuration::getCorpTipoPessoaFisica()) {
             $this->view->nacionalidadeDestino = $this->returnNacionalidade($this->view->dadosDestino);
         }
     }
     if ($this->view->dadosOrigem) {
         $sqTipoPessoa = $this->view->dadosOrigem[0]->getSqPessoaSgdoce()->getSqTipoPessoa()->getSqTipoPessoa();
         if ($sqTipoPessoa == \Core_Configuration::getCorpTipoPessoaFisica()) {
             $this->view->nacionalidadeOrigem = $this->returnNacionalidade($this->view->dadosOrigem);
         }
     }
     if ($this->view->data->getSqTipoArtefatoAssunto()->getSqTipoArtefatoAssunto()) {
         $this->_messageEdit = 'MN043';
         #mensagem de alteracao
     }
     if (!$this->view->isSIC) {
         $procedenciaInterno = isset($this->view->dadosOrigem[1]) ? $this->view->dadosOrigem[1] : NULL;
         //1 = interno  -- 3 = externo
         if ($procedenciaInterno == 1) {
             $disabledProcedencia = 'chekProcedenciaExterno';
         } else {
             $disabledProcedencia = 'chekProcedenciaInterno';
         }
         $this->view->disabledProcedencia = $disabledProcedencia;
     }
 }
Esempio n. 17
0
 /**
  * Edit - Crud
  */
 public function editAction()
 {
     parent::editAction();
     $params = $this->_getAllParams();
     /**
      * Artefato
      */
     $dtoSearch = Core_Dto::factoryFromData(array('sqArtefato' => $params['id']), 'search');
     $dtoArtefato = $this->getService('Artefato')->find($dtoSearch->getSqArtefato());
     /**
      * PessoaSgdoce
      */
     $dtoPessoaSgdoce = Core_Dto::factoryFromData(array('sqPessoaCorporativo' => $this->getPersonId()), 'search');
     $sqPessoaSgdoce = $this->getService('PessoaSgdoce')->findPessoaBySqCorporativo($dtoPessoaSgdoce);
     /**
      * PessoaUnidadeOrg
      */
     $pessoaUnidadeOrg = '';
     if ($sqPessoaSgdoce) {
         $pessoaUnidadeOrg = $this->getService('PessoaUnidadeOrg')->findUnidSgdoce($sqPessoaSgdoce);
         if (!$pessoaUnidadeOrg) {
             $pessoaUnidadeOrg = $this->getServiceLocator()->getService('Documento')->hasPessoaUnidadeOrg($sqPessoaSgdoce);
         }
     }
     /**
      * PessoaAssinanteArtefato
      */
     $this->view->pessoaAssinante = $this->getService('PessoaAssinanteArtefato')->getAssinanteArtefato($dtoSearch);
     $dadosOrigem = self::_dadosPessoaDocumento($dtoSearch, \Core_Configuration::getSgdocePessoaFuncaoOrigem());
     $dtoOrigem = Core_Dto::factoryFromData(array('sqProfissional' => $this->getPersonId()), 'search');
     $unidadeOrg = $this->getService()->unidadeOrigemPessoa($dtoOrigem);
     if (!count($dadosOrigem)) {
         $this->view->sqUnidadeOrg = $unidadeOrg->getSqUnidadeExercicio()->getSqUnidadeOrg();
         $this->view->noUnidadeOrg = $unidadeOrg->getSqUnidadeExercicio()->getNoUnidadeOrg();
     } else {
         $this->view->sqUnidadeOrg = $dadosOrigem[0]->getSqPessoaSgdoce()->getSqPessoaCorporativo()->getSqPessoa();
         $this->view->noUnidadeOrg = $dadosOrigem[0]->getSqPessoaSgdoce()->getNoPessoa();
     }
     $this->view->redirect = $params['view'];
     $this->view->data = $dtoArtefato;
     $this->view->pessoaUnidadeOrg = $pessoaUnidadeOrg;
     $this->view->usuario = $this->getPersonId();
     $this->view->itensTipoDocumento = $this->getService('TipoDoc')->listItems();
     $this->view->itensGrauAcesso = $this->getService('GrauAcesso')->listItensGrauAcesso();
     $this->view->grauAcessoArtefato = $this->getService('GrauAcessoArtefato')->getGrauAcessoArtefato($dtoSearch);
     $this->view->itensAssunto = $this->getService('Assunto')->comboAssunto();
 }
Esempio n. 18
0
 /**
  * Método para pesquisa de artefato por ID,
  * não é necessário o artefato estar na área do trabalho para retornar a pesquisa.
  * 
  * @return 
  */
 public function findById($sqArtefato)
 {
     $rsm = new \Doctrine\ORM\Query\ResultSetMapping();
     $rsm->addScalarResult('sq_artefato', 'sqArtefato', 'integer');
     $rsm->addScalarResult('nu_digital', 'nuDigital', 'string');
     $rsm->addScalarResult('nu_artefato', 'nuArtefato', 'string');
     $rsm->addScalarResult('sq_tipo_documento', 'sqTipoDocumento', 'integer');
     $rsm->addScalarResult('no_tipo_documento', 'noTipoDocumento', 'string');
     $rsm->addScalarResult('sq_tipo_artefato', 'sqTipoArtefato', 'integer');
     $rsm->addScalarResult('dt_cadastro', 'dtCadastro', 'zenddate');
     $rsm->addScalarResult('co_ambito_processo', 'coAmbitoProcessos', 'string');
     $rsm->addScalarResult('no_pessoa_origem', 'noPessoaOrigem', 'string');
     $sql = "SELECT\n                    art.sq_artefato,\n                    art.nu_digital,\n                    art.nu_artefato,\n                    art.dt_cadastro,\n                    art_ass.sq_tipo_artefato,\n                    art_pro.co_ambito_processo,\n                    tip_doc.sq_tipo_documento,\n                    tip_doc.no_tipo_documento,\n                    pes_sgd.no_pessoa as no_pessoa_origem\n                FROM artefato art\n                JOIN tipo_artefato_assunto art_ass ON art.sq_tipo_artefato_assunto = art_ass.sq_tipo_artefato_assunto\n                JOIN tipo_documento tip_doc ON art.sq_tipo_documento = tip_doc.sq_tipo_documento\n                -- ORIGEM\n                JOIN pessoa_artefato pes_art ON art.sq_artefato = pes_art.sq_artefato\n                JOIN pessoa_sgdoce pes_sgd ON pes_art.sq_pessoa_sgdoce = pes_sgd.sq_pessoa_sgdoce                \n                LEFT JOIN artefato_processo art_pro ON art.sq_artefato = art_pro.sq_artefato\n                WHERE art.sq_artefato = :sqArtefato\n                AND pes_art.sq_pessoa_funcao = :sqPessoaFuncao";
     $query = $this->_em->createNativeQuery($sql, $rsm);
     $query->setParameter('sqArtefato', $sqArtefato)->setParameter('sqPessoaFuncao', \Core_Configuration::getSgdocePessoaFuncaoOrigem())->useResultCache(false);
     return $query->getSingleResult();
 }
Esempio n. 19
0
 /**
  * @return
  */
 public function findArtefatoDuplicado($dto, $count = true)
 {
     $rsm = new \Doctrine\ORM\Query\ResultSetMapping($this->_em);
     $rsm->addScalarResult('sq_artefato', 'sqArtefato', 'integer');
     $rsm->addScalarResult('nu_digital', 'nuDigital', 'string');
     $rsm->addScalarResult('nu_artefato', 'nuArtefato', 'string');
     $sql = "SELECT art.sq_artefato,\n                       sgdoce.formata_numero_digital(art.nu_digital) AS nu_digital,\n                       art.nu_artefato\n                  FROM sgdoce.artefato art\n                  JOIN sgdoce.pessoa_artefato pes_art ON art.sq_artefato          = pes_art.sq_artefato\n                  JOIN sgdoce.pessoa_sgdoce pes_sgd   ON pes_art.sq_pessoa_sgdoce = pes_sgd.sq_pessoa_sgdoce\n                 WHERE art.sq_tipo_documento         = :sqTipoDocumento\n                   AND art.nu_artefato               = :nuArtefato\n                   AND pes_sgd.sq_pessoa_corporativo = :sqPessoaOrigem\n                   AND pes_art.sq_pessoa_funcao      = :sqPessoaFuncao";
     if ($dto->getSqArtefato()) {
         $sql .= " AND art.sq_artefato <> :sqArtefato";
     }
     $nativeQuery = $this->_em->createNativeQuery($sql, $rsm)->setParameter('sqTipoDocumento', $dto->getSqTipoDocumento())->setParameter('nuArtefato', $dto->getNuArtefato())->setParameter('sqPessoaOrigem', $dto->getSqPessoaOrigem())->setParameter('sqPessoaFuncao', \Core_Configuration::getSgdocePessoaFuncaoOrigem());
     if ($dto->getSqArtefato()) {
         $nativeQuery->setParameter('sqArtefato', $dto->getSqArtefato());
     }
     if ($count) {
         return count($nativeQuery->getArrayResult()) > 0;
     }
     return $nativeQuery->getArrayResult();
 }