コード例 #1
0
 public function saveDocumento(\Core_Dto_Abstract $dto)
 {
     \Zend_Registry::get('doctrine')->getEntityManager()->clear();
     $entityEndereco = $this->_getRepository()->findOneBy(array('sqEnderecoSgdoce' => $dto->getSqEnderecoSgdoce()));
     $result = !$entityEndereco ? $this->insertArquivo($dto) : $this->updateArquivo($dto, $entityEndereco);
     return array('entity' => $result, 'isUpdate' => !$entityEndereco ? false : true);
 }
コード例 #2
0
 public function saveDocumento(\Core_Dto_Abstract $dto)
 {
     \Zend_Registry::get('doctrine')->getEntityManager()->clear();
     $entityAnexo = $this->_getRepository()->findOneBy(array('sqPessoaSgdoce' => $dto->getSqPessoaSgdoce(), 'sqTipoDocumento' => $dto->getSqTipoDocumento()));
     $result = $entityAnexo ? $this->updateArquivo($entityAnexo, $dto) : $this->insertArquivo($dto);
     return $entityAnexo ? 'update' : 'insert';
 }
コード例 #3
0
 /**
  * Obtém os dados da unidade por tipo
  * @return Query
  */
 public function searchUnidadeOrgPorTipo(\Core_Dto_Abstract $dto)
 {
     $queryBuilder = $this->_em->createQueryBuilder()->select('u.sqUnidadeOrg, u.noUnidadeOrg')->from('app:VwUnidadeOrg', 'u');
     $queryBuilder->andWhere('u.sqTipoUnidade = :sqTipoUnidade')->setParameter('sqTipoUnidade', $dto->getSqTipoUnidadeOrg());
     $res = $queryBuilder->getQuery()->execute();
     return $res;
 }
コード例 #4
0
ファイル: Documento.php プロジェクト: sgdoc/sgdoce-codigo
 /**
  * Realiza a pesquisa da grid
  * @param \Core_Dto_Abstract $dto
  */
 public function listGrid(\Core_Dto_Abstract $dto)
 {
     return $this->_em->createQueryBuilder()->select('
                         d.sqDocumento, 
                         d.txValor, 
                         td.sqTipoDocumento, 
                         td.noTipoDocumento,
                         atd.sqAtributoTipoDocumento, 
                         p.sqPessoa')->from('app:Documento', 'd')->innerJoin('d.sqAtributoTipoDocumento', 'atd')->innerJoin('atd.sqAtributoDocumento', 'ad')->innerJoin('atd.sqTipoDocumento', 'td')->innerJoin('d.sqPessoa', 'p')->where('p.sqPessoa = :sqPessoa')->setParameter('sqPessoa', $dto->getSqPessoa())->andWhere($this->_em->createQueryBuilder()->expr()->in('ad.sqAtributoDocumento', ':sqAtributoDocumento'))->setParameter('sqAtributoDocumento', array(\Core_Configuration::getCorpAtributoDocumentoNumero(), \Core_Configuration::getCorpAtributoDocumentoPisPasep()));
 }
コード例 #5
0
ファイル: Endereco.php プロジェクト: sgdoc/sgdoce-codigo
 /**
  * Realiza a pesquisa da grid
  * @param \Core_Dto_Abstract $dto
  */
 public function listGrid(\Core_Dto_Abstract $dto)
 {
     return $this->_em->createQueryBuilder()->select('p.sqPessoa,
                             e.sqEndereco,
                             e.sqCep,
                             te.noTipoEndereco,
                             e.txEndereco,
                             e.nuEndereco,
                             e.noBairro,
                             m.noMunicipio,
                             es.noEstado')->from('app:Endereco', 'e')->innerJoin('e.sqPessoa', 'p')->innerJoin('e.sqTipoEndereco', 'te')->innerJoin('e.sqMunicipio', 'm')->innerJoin('m.sqEstado', 'es')->where('p.sqPessoa = :sqPessoa')->setParameter('sqPessoa', $dto->getSqPessoa());
 }
コード例 #6
0
 public function updateEndereco(\Core_Dto_Abstract $dto, $params = null)
 {
     $return = null;
     try {
         $_qb = $this->_em->createQueryBuilder();
         $_qb->update('app:EnderecoSgdoce', 'es')->set('es.sqTipoEndereco', $_qb->expr()->literal($dto->getSqTipoEndereco()))->set('es.sqMunicipio', $_qb->expr()->literal($dto->getSqMunicipio()))->set('es.coCep', $_qb->expr()->literal($dto->getCoCep()))->set('es.noBairro', $_qb->expr()->literal($dto->getNoBairro()))->set('es.txEndereco', $_qb->expr()->literal($dto->getTxEndereco()))->set('es.nuEndereco', $_qb->expr()->literal($dto->getNuEndereco()))->set('es.txComplemento', $_qb->expr()->literal($dto->getTxComplemento()))->set('es.noContato', $_qb->expr()->literal($params->getNoContato()))->where('es.sqEnderecoSgdoce = :sqEnderecoSgdoce')->setParameter('sqEnderecoSgdoce', $dto->getSqEnderecoSgdoce())->getQuery()->execute();
         $return = true;
     } catch (Exception $e) {
     }
     return $return;
 }
コード例 #7
0
ファイル: DadoBancario.php プロジェクト: sgdoc/sgdoce-codigo
 /**
  * Realiza a pesquisa da grid
  * @param \Core_Dto_Abstract $dto
  */
 public function listGrid(\Core_Dto_Abstract $dto)
 {
     return $this->_em->createQueryBuilder()->select('
                         c.sqDadoBancario,
                         td.noTipoDadoBancario,
                         b.noBanco,
                         b.coBanco,
                         a.noAgencia,
                         a.coDigitoAgencia,
                         a.coAgencia,
                         c.nuConta,
                         c.nuContaDv,
                         p.sqPessoa
                         ')->from('app:DadoBancario', 'c')->innerJoin('c.sqTipoDadoBancario', 'td')->innerJoin('c.sqAgencia', 'a')->innerJoin('a.sqBanco', 'b')->innerJoin('c.sqPessoa', 'p')->where('p.sqPessoa = :sqPessoa')->setParameter('sqPessoa', $dto->getSqPessoa());
 }
コード例 #8
0
ファイル: VwDocumento.php プロジェクト: sgdoc/sgdoce-codigo
 public function listGrid(\Core_Dto_Abstract $dto)
 {
     $_qb = $this->_em->createQueryBuilder();
     $query = $_qb->select('
         d.sqDocumento,
         d.txValor,
         td.sqTipoDocumento,
         td.noTipoDocumento,
         atd.sqAtributoTipoDocumento,
         p.sqPessoa,
         ps.sqPessoaSgdoce,
         acd.sqAnexoComprovanteDocumento,
         acd.deCaminhoImagem
     ')->from($this->_entityName, 'd')->innerJoin('d.sqAtributoTipoDocumento', 'atd')->innerJoin('atd.sqAtributoDocumento', 'ad')->innerJoin('atd.sqTipoDocumento', 'td')->innerJoin('d.sqPessoa', 'p')->leftJoin('p.sqPessoaCorporativo', 'ps', 'WITH', $_qb->expr()->andX()->add($_qb->expr()->eq('ps.sqPessoaCorporativo', 'p.sqPessoa')))->leftJoin('ps.sqAnexoComprovanteDocumento', 'acd', 'WITH', $_qb->expr()->andX()->add($_qb->expr()->eq('acd.sqTipoDocumento', 'td.sqTipoDocumento'))->add($_qb->expr()->eq('acd.sqPessoaSgdoce', ':sqPessoaSgdoce')))->where('p.sqPessoa = :sqPessoa')->andWhere($_qb->expr()->in('ad.sqAtributoDocumento', ':sqAtributoDocumento'))->setParameter('sqPessoa', $dto->getSqPessoaFisica() ?: null)->setParameter('sqPessoaSgdoce', $dto->getSqPessoaSgdoce() ?: null)->setParameter('sqAtributoDocumento', array(\Core_Configuration::getCorpAtributoDocumentoNumero()));
     return $query;
 }
コード例 #9
0
 /**
  * Obtém os dados da pessoa
  * @return array
  */
 public function searchPessoa(\Core_Dto_Abstract $dto)
 {
     $search = mb_strtolower($dto->getQuery(), 'UTF-8');
     $queryBuilder = $this->_em->createQueryBuilder();
     $field = $queryBuilder->expr()->lower($queryBuilder->expr()->trim('p.noPessoa'));
     $query = $queryBuilder->select('vprof, p')->from('app:VwVinculoFuncional', 'vprof')->innerJoin('vprof.sqPessoa', 'p')->andWhere($queryBuilder->expr()->like('clear_accentuation(' . $field . ')', $queryBuilder->expr()->literal($this->removeAccent('%' . $search . '%'))));
     if ($dto->hasExtraParam()) {
         $query->andWhere('vprof.sqUnidadeLotacao = :sqUnidadeLotacao')->setParameter('sqUnidadeLotacao', $dto->getExtraParam());
     }
     $query->orderBy('p.noPessoa');
     $res = $query->getQuery()->getArrayResult();
     $out = array();
     foreach ($res as $item) {
         $out[$item['sqPessoa']['sqPessoa']] = $item['sqPessoa']['noPessoa'];
     }
     return $out;
 }
コード例 #10
0
 public function recoverPass(\Core_Dto_Abstract $dto)
 {
     $queryBuilder = $this->_em->createQueryBuilder();
     $query = $this->_em->createQueryBuilder()->select('u.sqUsuarioExterno, u.stRegistroAtivo' . ',u.txEmail, u.txSenha, u.noUsuarioExterno, u.stRegistroAtivo')->from('app:UsuarioExternoPerfil', 'up')->innerJoin('up.sqPerfil', 'per')->innerJoin('up.sqUsuarioExterno', 'u')->where($queryBuilder->expr()->eq('u.txEmail', ':txEmail'))->setParameter('txEmail', $dto->getTxEmail())->andWhere($queryBuilder->expr()->eq('per.inPerfilExterno', ':inPerfilExterno'))->setParameter(':inPerfilExterno', 'TRUE');
     $param = \Zend_Filter::filterStatic($dto->getTxLogin(), 'digits');
     $pessoa = 'sqUsuarioPessoaFisica';
     switch ($dto->getTpValidacao()) {
         case 'passaporte':
             $field = 'nuPassaporte';
             break;
         case 'cpf':
             $field = 'nuCpf';
             break;
         default:
             $pessoa = 'sqUsuarioPessoaJuridica';
             $field = 'nuCnpj';
             break;
     }
     $query->innerJoin("u.{$pessoa}", 'upfj')->andWhere($queryBuilder->expr()->eq("upfj.{$field}", ':param'))->setParameter('param', $param);
     $result = $query->getQuery()->getResult();
     return $result ? $result[0] : $result;
 }
コード例 #11
0
 /**
  * Obtém campos do modelo documento
  * @param \Core_Dto_Search $dtoSearch
  * @return array
  */
 public function getCampoModeloDocumento(\Core_Dto_Abstract $dtoSearch)
 {
     $queryBuilder = $this->_em->createQueryBuilder();
     $queryBuilder->select('pmd.sqPadraoModeloDocumento,pmd.noPadraoModeloDocumento', 'c.noCampo', 'c.noColunaTabela', 'gp.sqGrupoCampo', 'pmdc.inObrigatorio')->from('app:ModeloDocumentoCampo', 'mdc')->innerJoin('mdc.sqPadraoModeloDocumentoCam', 'pmdc')->innerJoin('pmdc.sqPadraoModeloDocumento', 'pmd')->innerJoin('pmdc.sqCampo', 'c')->innerJoin('c.sqGrupoCampo', 'gp')->innerJoin('mdc.sqModeloDocumento', 'md');
     if ($dtoSearch->getSqModeloDocumento()) {
         $queryBuilder->andWhere('md.sqModeloDocumento = :sqModeloDocumento');
         $queryBuilder->setParameter('sqModeloDocumento', $dtoSearch->getSqModeloDocumento());
     } else {
         $queryBuilder->andWhere('md.inAtivo = :inAtivo')->setParameter('inAtivo', "TRUE");
     }
     $out = $queryBuilder->getQuery()->execute();
     $filter = new \Zend_Filter_Word_UnderscoreToCamelCase();
     $arrayField = array();
     foreach ($out as $key => $value) {
         $arrayField[$key]['sqPadraoModeloDocumento'] = $value['sqPadraoModeloDocumento'];
         $arrayField[$key]['noPadraoModeloDocumento'] = $value['noPadraoModeloDocumento'];
         $arrayField[$key]['noCampo'] = $value['noCampo'];
         $arrayField[$key]['noColunaTabela'] = lcfirst($filter->filter($value['noColunaTabela']));
         $arrayField[$key]['sqGrupoCampo'] = $value['sqGrupoCampo'];
         $arrayField[$key]['inObrigatorio'] = $value['inObrigatorio'];
     }
     return $arrayField;
 }
コード例 #12
0
 /**
  *
  * @param \Core_Dto_Abstract $dto
  * @return \Doctrine\ORM\NativeQuery
  */
 public function listTramiteExternoComRastreamento(\Core_Dto_Abstract $dto)
 {
     $rsm = new \Doctrine\ORM\Query\ResultSetMapping($this->_em);
     $rsm->addScalarResult('no_pessoa_destino', 'noPessoaDestino', 'string');
     $rsm->addScalarResult('no_tipo_rastreamento', 'noTipoRastreamento', 'string');
     $rsm->addScalarResult('tx_codigo_rastreamento', 'txCodigoRastreamento', 'string');
     $rsm->addScalarResult('dt_envio', 'dtEnvio', 'zenddate');
     $rsm->addScalarResult('no_remetente', 'noRemetente', 'string');
     $strQuery = sprintf('SELECT p.no_pessoa AS no_pessoa_destino
                     ,trc.no_tipo_rastreamento_correio AS no_tipo_rastreamento
                     ,ta.tx_codigo_rastreamento
                     ,ta.dt_tramite AS dt_envio
                     ,pes_origem.no_pessoa || \' [\' || uo_origem.no_pessoa || \']\' AS no_remetente
                FROM tramite_artefato ta
           LEFT JOIN vw_unidade_org             uo ON ta.sq_pessoa_destino = uo.sq_pessoa
           LEFT JOIN vw_pessoa                   p ON ta.sq_pessoa_destino = p.sq_pessoa
           LEFT JOIN tipo_rastreamento_correio trc ON ta.sq_tipo_rastreamento = trc.sq_tipo_rastreamento_correio
           LEFT JOIN vw_unidade_org      uo_origem ON ta.sq_unidade_org_tramite = uo_origem.sq_pessoa
           LEFT JOIN vw_pessoa          pes_origem ON ta.sq_pessoa_tramite = pes_origem.sq_pessoa
               WHERE uo.sq_pessoa IS NULL
                 AND ta.sq_artefato = %1$d
                 AND ta.tx_codigo_rastreamento IS NOT NULL', $dto->getSqArtefato());
     return $this->_em->createNativeQuery($strQuery, $rsm)->useResultCache(false);
 }
コード例 #13
0
ファイル: Pessoa.php プロジェクト: sgdoc/sgdoce-codigo
 /**
  * Adiciona parametros para realizar o filtro da grid
  * @param \Doctrine\ORM\QueryBuilder $query
  * @param \Core_Dto_Abstract $dto
  */
 public function addWhere(\Doctrine\ORM\QueryBuilder $query, \Core_Dto_Abstract $dto)
 {
     $inputs = array('tp.sqTipoPessoa' => $dto->getSqTipoPessoa(), 'pf.nuCpf' => $dto->getNuCpf(), 'pj.nuCnpj' => $dto->getNuCnpj(), 'p.stRegistroAtivo' => $dto->getStRegistroAtivo());
     switch ($dto->getSqTipoPessoa()) {
         case srvPessoa::SQ_TIPO_PESSOA_FISICA:
             $inputs['p.noPessoa'] = $dto->getNoPessoaFisica();
             break;
         case srvPessoa::SQ_TIPO_PESSOA_JURIDICA:
             $inputs['p.noPessoa'] = $dto->getNoPessoaJuridica();
             $inputs['nj.sqNaturezaJuridicaPai'] = $dto->getSqNaturezaJuridicaPai();
             $inputs['nj.sqNaturezaJuridica'] = $dto->getSqNaturezaJuridica();
             break;
         default:
             $inputs['p.noPessoa'] = $dto->getNoPessoaSemClass();
             break;
     }
     $countParams = 0;
     foreach ($inputs as $field => $value) {
         if ($value != '') {
             if (strstr($field, 'sq') || strstr($field, 'nu') || strstr($field, 'st')) {
                 if ($field == 'tp.sqTipoPessoa' && $value == srvPessoa::SEM_CLASSIFICACAO) {
                     $query->andWhere($this->_em->createQueryBuilder()->expr()->in('tp.sqTipoPessoa', ':expre'))->setParameter('expre', array(srvPessoa::SQ_TIPO_PESSOA_FISICA, srvPessoa::SQ_TIPO_PESSOA_JURIDICA));
                 } else {
                     $query->andWhere($field . ' = ?' . $countParams)->setParameter($countParams, \Zend_Filter::filterStatic($value, 'Digits'));
                 }
             } else {
                 $expre = $query->expr()->lower($query->expr()->trim($field));
                 $value = "%" . mb_strtolower(trim($value), 'UTF-8') . "%";
                 $query->andWhere($query->expr()->like('clear_accentuation(' . $expre . ')', $query->expr()->literal($this->translate($value))));
                 if ($dto->getSqTipoPessoa() == srvPessoa::SEM_CLASSIFICACAO || $dto->getSqTipoPessoa() == srvPessoa::SQ_TIPO_PESSOA_JURIDICA) {
                     $expre = $query->expr()->lower($query->expr()->trim('pj.noFantasia'));
                     $query->orWhere($query->expr()->like('clear_accentuation(' . $expre . ')', $query->expr()->literal($this->translate($value))));
                 }
             }
             $countParams++;
         }
     }
 }
コード例 #14
0
ファイル: Pessoa.php プロジェクト: sgdoc/sgdoce-codigo
 /**
  * Exclui o destinatario do artefato
  * @param \Core_Dto_Search $dtoSearch
  * @return boolean
  */
 public function deleteDestinatario(\Core_Dto_Abstract $dtoSearch)
 {
     $repository = $this->_getRepository($this->_entityName);
     $criteria = array('sqArtefato' => $dtoSearch->getSqArtefato()->getSqArtefato(), 'sqPessoaSgdoce' => $dtoSearch->getSqPessoaSgdoce()->getSqPessoaSgdoce(), 'sqPessoaFuncao' => $dtoSearch->getSqPessoaFuncao()->getSqPessoaFuncao());
     $destinario = $repository->findOneBy($criteria);
     $this->getEntityManager()->remove($destinario);
     $this->getEntityManager()->flush();
     return TRUE;
 }
コード例 #15
0
 /**
  * Resgata um artefato recebido por um usuário para a area de trabalho da unidade;
  *
  * @param \Core_Dto_Abstract $dto
  * @return \Sgdoce\Model\Entity\TramiteArtefato
  */
 public function rescue(\Core_Dto_Abstract $dto)
 {
     $sqArtefato = $dto->getSqArtefato();
     $entityUTA = $this->_getRepository($this->_entityVwUltimoTramiteArtefato)->find($sqArtefato);
     $noPessoaRecebimento = 'Não identificado';
     if ($entityUTA->getSqPessoaRecebimento()) {
         $noPessoaRecebimento = $entityUTA->getSqPessoaRecebimento()->getNoPessoa();
     }
     $entityArtefato = $this->_getRepository($this->_entityArtefato)->find($sqArtefato);
     $noTipoArtefato = $entityArtefato->getSqTipoArtefatoAssunto()->getSqTipoArtefato()->getNoTipoArtefato();
     $params = array('sqArtefato' => $sqArtefato, 'sqTipoRastreamento' => NULL, 'txCodigoRastreamento' => NULL, 'dtTramite' => \Zend_Date::now(), 'sqPessoaTramite' => \Core_Integration_Sica_User::getPersonId(), 'sqUnidadeOrgTramite' => \Core_Integration_Sica_User::getUserUnit(), 'sqStatusTramite' => \Core_Configuration::getSgdoceStatusTramiteTramitado(), 'sqPessoaDestino' => \Core_Integration_Sica_User::getUserUnit(), 'inImpresso' => TRUE, 'nuTramite' => $this->getNextTramiteNumber($dto));
     $entityDto = $this->montaEntidateTramite($params);
     $entityTramiteArtefato = $this->save($entityDto);
     $serviceHA = $this->getServiceLocator()->getService('HistoricoArtefato');
     sleep(1);
     //só pro historico ser a ultima movimentação
     $strMessage = $serviceHA->getMessage('MH017', $noTipoArtefato, \Zend_Date::now()->get(\Zend_Date::DATETIME_MEDIUM), $noPessoaRecebimento, \Core_Integration_Sica_User::getUserName());
     $nuOcorrencia = \Core_Configuration::getSgdoceSqOcorrenciaResgateTramite();
     $serviceHA->registrar($sqArtefato, $nuOcorrencia, $strMessage);
     $this->finish();
     return $entityTramiteArtefato;
 }
コード例 #16
0
 /**
  * Obtém um modelo
  * @param  \Core_Dto_Abstract $dto
  * @return array
  */
 public function findModelo(\Core_Dto_Abstract $dto)
 {
     $queryBuilder = $this->_em->createQueryBuilder()->select('  DISTINCT
                           md.sqModeloDocumento,
                           pmd.sqPadraoModeloDocumento,
                           pmd.noPadraoModeloDocumento,
                           td.sqTipoDocumento,
                           td.noTipoDocumento,
                           a.sqAssunto,
                           a.txAssunto,
                           md.inAtivo,
                           ptd.sqPosicaoTipoDocumento')->from('app:ModeloDocumento', 'md')->innerJoin('md.sqModeloDocumentoCampo', 'mdc')->innerJoin('md.sqTipoDocumento', 'td')->leftJoin('md.sqAssunto', 'a')->leftJoin('md.sqPosicaoTipoDocumento', 'ptd')->innerJoin('mdc.sqPadraoModeloDocumentoCam', 'pmdc')->innerJoin('pmdc.sqPadraoModeloDocumento', 'pmd')->andWhere('md.sqModeloDocumento = :sqModeloDocumento')->setParameter('sqModeloDocumento', $dto->getSqModeloDocumento())->orderBy('pmd.noPadraoModeloDocumento, td.noTipoDocumento, a.txAssunto', 'ASC');
     return $queryBuilder->getQuery()->getSingleResult();
 }
コード例 #17
0
ファイル: VwEndereco.php プロジェクト: sgdoc/sgdoce-codigo
 public function listaEnderecoTramite(\Core_Dto_Abstract $dto)
 {
     $sql = $this->_em->createQueryBuilder()->select('p.sqPessoa', 'e.sqEndereco', 'e.sqCep', 'te.noTipoEndereco', 'TRIM(e.txEndereco) AS txEndereco', 'e.nuEndereco', 'TRIM(e.noBairro) AS noBairro', 'm.noMunicipio', 'es.noEstado', 'TRIM(e.txComplemento) AS txComplemento')->from('app:VwEndereco', 'e')->innerJoin('e.sqPessoa', 'p')->innerJoin('e.sqTipoEndereco', 'te')->innerJoin('e.sqMunicipio', 'm')->innerJoin('m.sqEstado', 'es')->where('p.sqPessoa = ' . $dto->getSqPessoa())->orderBy('e.sqTipoEndereco');
     return $sql->getQuery()->getResult();
 }
コード例 #18
0
ファイル: Dossie.php プロジェクト: sgdoc/sgdoce-codigo
 /**
  * método que traz a lotacao atual do usuario
  * @param \Core_Dto_Abstract $dto
  */
 public function unidadeOrigemPessoa(\Core_Dto_Abstract $dto)
 {
     return $this->getEntityManager()->getRepository('app:VwProfissional')->find($dto->getSqProfissional());
 }
コード例 #19
0
ファイル: PessoaVinculo.php プロジェクト: sgdoc/sgdoce-codigo
 /**
  * Realiza a pesquisa da grid
  * @param \Core_Dto_Abstract $dto
  */
 public function listGrid(\Core_Dto_Abstract $dto)
 {
     return $this->_em->createQueryBuilder()->select('p.sqPessoa, pf.nuCpf, pr.noPessoa, tv.noTipoVinculo, pv.sqPessoaVinculo, ' . 'pv.dtInicioVinculo, pv.dtFimVinculo, pv.stRegistroAtivo')->from('app:PessoaVinculo', 'pv')->innerJoin('pv.sqTipoVinculo', 'tv')->innerJoin('pv.sqPessoaRelacionamento', 'pr')->innerJoin('pv.sqPessoa', 'p')->innerJoin('pr.sqPessoaFisica', 'pf')->where('pv.sqPessoa = :sqPessoa')->setParameter('sqPessoa', $dto->getSqPessoa());
 }
コード例 #20
0
 /**
  * Obtém os dados da pessoa para encaminhar minuta para analise ou assinatura
  * @return array $out
  */
 public function searchPessoas(\Core_Dto_Abstract $dto)
 {
     $sqArtefato = $dto->getSqArtefato();
     $inExistentAss = $this->verificaPessoaAssinatura($sqArtefato);
     $query = mb_strtolower($dto->getQuery(), 'UTF-8');
     $queryBuilder = $this->getEntityManager()->createQueryBuilder()->select('DISTINCT p.sqPessoa, p.noPessoa');
     if ($dto->getInAssinatura() && $inExistentAss) {
         $this->queryAssinatura($queryBuilder, $dto, $query);
     } else {
         $this->queryAnalise($queryBuilder, $dto, $query);
     }
     $queryBuilder->orderBy('p.noPessoa');
     $res = $queryBuilder->getQuery()->execute();
     $out = array();
     foreach ($res as $key => $data) {
         $out[$data['sqPessoa']] = $data['noPessoa'];
     }
     return $out;
 }
コード例 #21
0
ファイル: CaixaArquivo.php プロジェクト: sgdoc/sgdoce-codigo
 /**
  * Verifica se uma caixa pode ser editada e/ou excluida
  *
  * @param \Core_Dto_Abstract $dto
  * @return boolean
  */
 public function verificaArtefatoArquivadoCaixa(\Core_Dto_Abstract $dto)
 {
     $entityCaixa = $this->find($dto->getSqCaixa());
     return $entityCaixa->getSqCaixaArtefato()->count() === 0;
 }
コード例 #22
0
ファイル: Email.php プロジェクト: sgdoc/sgdoce-codigo
 /**
  * Realiza a pesquisa da grid
  * @param \Core_Dto_Abstract $dto
  */
 public function listGrid(\Core_Dto_Abstract $dto)
 {
     return $this->_em->createQueryBuilder()->select('p.sqPessoa, te.noTipoEmail, e.sqEmail, e.txEmail')->from('app:Email', 'e')->innerJoin('e.sqTipoEmail', 'te')->innerJoin('e.sqPessoa', 'p')->where('p.sqPessoa = :sqPessoa')->setParameter('sqPessoa', $dto->getSqPessoa());
 }
コード例 #23
0
    public function vinculoListGrid(\Core_Dto_Abstract $dto)
    {
        if ($this->hasNoOrderVinculo($dto->getSqArtefatoParent())) {
            $this->setOrderIn($dto->getSqArtefatoParent());
        }
        $rsm = new \Doctrine\ORM\Query\ResultSetMapping($this->_em);
        $rsm->addScalarResult('total_record', 'totalRecord', 'integer');
        $rsm->addScalarResult('nu_ordem', 'nuOrdem', 'integer');
        $rsm->addScalarResult('sq_artefato_vinculo', 'sqArtefatoVinculo', 'integer');
        $rsm->addScalarResult('sq_artefato', 'sqArtefato', 'integer');
        $rsm->addScalarResult('sq_artefato_pai', 'sqArtefatoPai', 'integer');
        $rsm->addScalarResult('sq_tipo_artefato', 'sqTipoArtefato', 'integer');
        $rsm->addScalarResult('sq_tipo_vinculo_artefato', 'sqTipoVinculoArtefato', 'integer');
        $rsm->addScalarResult('nu_fvalue', 'nuFvalue', 'integer');
        $rsm->addScalarResult('nu_lvalue', 'nuLvalue', 'integer');
        $rsm->addScalarResult('nu_digital', 'nuDigital', 'string');
        $rsm->addScalarResult('nu_artefato', 'nuArtefato', 'string');
        $rsm->addScalarResult('dt_tramite', 'dtTramite', 'string');
        $rsm->addScalarResult('no_tipo_documento', 'noTipoDocumento', 'string');
        $rsm->addScalarResult('tx_assunto', 'txAssunto', 'string');
        $rsm->addScalarResult('tx_movimentacao', 'txMovimentacao', 'string');
        $rsm->addScalarResult('is_vinculo', 'isVinculo', 'boolean');
        $rsm->addScalarResult('is_disponivel', 'isDisponivel', 'boolean');
        $rsm->addScalarResult('is_anexado', 'isAnexado', 'boolean');
        $rsm->addScalarResult('is_apensado', 'isApensado', 'boolean');
        $rsm->addScalarResult('is_primeira_peca', 'isPrimeiraPeca', 'boolean');
        $strQuery = sprintf('
                   WITH configs AS (
                    SELECT %5$s,
                           %6$s,
                           %7$s,
                           %8$s,
                           %9$s,
                           %12$s,
                           %13$s,
                           %14$s,
                           %15$s,
                           %16$s
                      FROM sicae.lista_constantes(
                                \'%5$s\',
                                \'%6$s\',
                                \'%7$s\',
                                \'%8$s\',
                                \'%9$s\',
                                \'%12$s\',
                                \'%13$s\',
                                \'%14$s\',
                                \'%15$s\',
                                \'%16$s\'
                            ) as c(
                                    %5$s integer,
                                    %6$s integer,
                                    %7$s integer,
                                    %8$s integer,
                                    %9$s integer,
                                    %12$s integer,
                                    %13$s integer,
                                    %14$s integer,
                                    %15$s integer,
                                    %16$s integer
                                 )
            )
            SELECT COUNT(sq_artefato) OVER() as total_record,
                   *
              FROM (
                        (SELECT vin.sq_artefato_vinculo
                               , art.sq_artefato
                               , art_art_ass.sq_tipo_artefato
                               , vin.sq_artefato_pai
                               , vin.sq_tipo_vinculo_artefato
                               , formata_numero_digital(art.nu_digital) as nu_digital
                               , sgdoce.formata_numero_artefato(art.nu_artefato, ap.co_ambito_processo) as nu_artefato
                               , tip_doc.no_tipo_documento
                               , ass.tx_assunto
                               , sgdoce.ultima_movimentacao_artefato(art.sq_artefato) as tx_movimentacao
                               , TRUE AS is_vinculo
                               , (configs.%5$s = vin.sq_tipo_vinculo_artefato)::BOOLEAN AS is_anexado
                               , (vin.sq_tipo_vinculo_artefato IN (configs.%6$s, configs.%9$s)) AS is_apensado
                               , FALSE AS is_disponivel
                               , (configs.%15$s = vin.sq_tipo_vinculo_artefato) as is_primeira_peca
                               , vin.nu_ordem AS nu_ordem
                               , (first_value(vin.nu_ordem) OVER(PARTITION BY vin.sq_artefato_pai ORDER BY vin.nu_ordem ASC)::INTEGER)::INTEGER AS nu_fvalue
                               , (last_value(vin.nu_ordem) OVER(PARTITION BY vin.sq_artefato_pai)::INTEGER)::INTEGER AS nu_lvalue
                          FROM sgdoce.artefato_vinculo AS vin
                    INNER JOIN configs ON TRUE
                    INNER JOIN sgdoce.artefato AS art
                            ON (vin.sq_artefato_filho = art.sq_artefato)
                    INNER JOIN sgdoce.tipo_artefato_assunto AS art_art_ass
                            ON (art.sq_tipo_artefato_assunto = art_art_ass.sq_tipo_artefato_assunto)
                    INNER JOIN sgdoce.assunto AS ass
                         USING (sq_assunto)
                     LEFT JOIN sgdoce.tipo_documento AS tip_doc
                         USING (sq_tipo_documento)
                     LEFT JOIN sgdoce.artefato_processo AS ap
                            ON (art.sq_artefato = ap.sq_artefato)
                         WHERE vin.sq_artefato_pai = %2$d
                           AND vin.sq_tipo_vinculo_artefato NOT IN (configs.%12$s,configs.%13$s,configs.%14$s)
                           AND ((art_art_ass.sq_tipo_artefato = %11$s) OR (%11$s IS NULL))

                      )
                      UNION

                      (SELECT null as sq_artefato_vinculo
                             ,art.sq_artefato
                             ,art_art_ass.sq_tipo_artefato
                             ,NULL AS sq_artefato_pai
                             ,NULL AS sq_tipo_vinculo_artefato
                             ,formata_numero_digital(art.nu_digital) as nu_digital
                             ,sgdoce.formata_numero_artefato(art.nu_artefato, ap.co_ambito_processo) as nu_artefato
                             ,tip_doc.no_tipo_documento
                             ,ass.tx_assunto
                             ,sgdoce.ultima_movimentacao_artefato(art.sq_artefato) as tx_movimentacao
                             ,FALSE AS is_vinculo
                             ,FALSE AS is_anexado
                             ,FALSE AS is_apensado
                             ,TRUE AS is_disponivel
                             ,FALSE AS is_primeira_peca
                             ,NULL AS nu_ordem
                             ,0 AS nu_fvalue
                             ,0 AS nu_lvalue
                        FROM sgdoce.artefato AS art
                  INNER JOIN configs ON TRUE
                  INNER JOIN sgdoce.tramite_artefato uta
                          ON  uta.sq_artefato = art.sq_artefato
                         AND uta.st_ultimo_tramite
                  INNER JOIN sgdoce.tipo_artefato_assunto AS art_art_ass
                       USING (sq_tipo_artefato_assunto)
                  INNER JOIN sgdoce.assunto AS ass
                       USING (sq_assunto)
                   LEFT JOIN sgdoce.artefato_imagem uia
                          ON art.sq_artefato = uia.sq_artefato
                         AND uia.st_ativo
                        JOIN configs const ON TRUE
                   LEFT JOIN sgdoce.artefato_vinculo atv
                          ON sq_tipo_vinculo_artefato = const.SGDOCE_TIPO_VINCULO_ARTEFATO_AUTUACAO
                         AND art.sq_artefato = atv.sq_artefato_pai
                   LEFT JOIN sgdoce.artefato_imagem uiaf
                          ON uiaf.sq_artefato = atv.sq_artefato_filho
                   LEFT JOIN sgdoce.tipo_documento AS tip_doc
                          ON (tip_doc.sq_tipo_documento = art.sq_tipo_documento)
                   LEFT JOIN sgdoce.caixa_artefato AS arq
                          ON (arq.sq_artefato = art.sq_artefato)
                   LEFT JOIN sgdoce.artefato_processo AS ap
                          ON (art.sq_artefato = ap.sq_artefato)
                   LEFT JOIN sgdoce.artefato_vinculo av
                          ON (art.sq_artefato = av.sq_artefato_filho
                         AND av.sq_tipo_vinculo_artefato NOT IN (configs.%12$s,configs.%13$s,configs.%14$s))
                   LEFT JOIN sgdoce.artefato_arquivo_setorial aas
                          ON art.sq_artefato = aas.sq_artefato AND aas.dt_desarquivamento IS NULL
                   LEFT JOIN (
                                SELECT s.sq_artefato,
                                       COUNT(CASE
                                                WHEN uss.sq_tipo_status_solicitacao = configs_1.%16$s THEN NULL::INTEGER
                                                ELSE 1
                                             END) AS qtd_solicitacao_aberta
                                  FROM sgdoce.solicitacao s
                                  JOIN configs configs_1 ON true
                                  JOIN sgdoce.vw_ultimo_status_solicitacao uss USING (sq_solicitacao)
                                 WHERE s.sq_artefato IS NOT NULL
                                 GROUP BY s.sq_artefato
                             ) sol ON sol.sq_artefato = art.sq_artefato
                    WHERE av.sq_artefato_vinculo IS NULL
                        AND (sol.qtd_solicitacao_aberta = 0 OR sol.qtd_solicitacao_aberta IS NULL)
                        AND (sgdoce.formata_numero_digital(art.nu_digital) LIKE \'%4$s%%\' OR LOWER(translate(art.nu_artefato, \'./-\', \'\')) LIKE \'%4$s%%\' )
                        AND EXISTS (    SELECT *
                                          FROM sgdoce.artefato pai
                                    INNER JOIN sgdoce.tipo_artefato_assunto tp_art_pai
                                            ON tp_art_pai.sq_tipo_artefato_assunto = pai.sq_tipo_artefato_assunto
                                    INNER JOIN sgdoce.tipo_artefato tp_pai
                                            ON tp_art_pai.sq_tipo_artefato = tp_pai.sq_tipo_artefato
                                         WHERE pai.sq_artefato = %2$d
                                           AND (art_art_ass.sq_tipo_artefato IN (configs.SGDOCE_TIPO_ARTEFATO_PROCESSO, configs.SGDOCE_TIPO_ARTEFATO_DOCUMENTO)
                                                AND tp_pai.sq_tipo_artefato = configs.SGDOCE_TIPO_ARTEFATO_PROCESSO)
                                                OR (art_art_ass.sq_tipo_artefato = (configs.SGDOCE_TIPO_ARTEFATO_DOCUMENTO)
                                                AND tp_pai.sq_tipo_artefato = configs.SGDOCE_TIPO_ARTEFATO_DOCUMENTO))
                        AND art.sq_artefato != %2$d
                        AND ((uta.sq_status_tramite > %19$d AND uta.sq_pessoa_recebimento = %1$d AND (uta.sq_unidade_org_tramite = %3$d OR uta.sq_pessoa_destino = %3$d)))
                        AND arq.sq_artefato IS NULL -- artefatos arquivados não podem ser vinculados
                        AND aas.sq_artefato IS NULL -- artefatps arqiovados no setor não podem ser vinculados
                        AND art_art_ass.sq_tipo_artefato in (%10$s)
                        AND (uia.sq_artefato_imagem IS NOT NULL OR (art_art_ass.sq_tipo_artefato = %18$d AND uiaf.sq_artefato_imagem IS NOT NULL))
                        AND ((art_art_ass.sq_tipo_artefato = %11$s) OR (%11$s IS NULL))
                   )
                ) sub1', $dto->getSqPessoa(), $dto->getSqArtefatoParent(), $dto->getSqUnidadeOrg(), $dto->getNuArtefato(), self::T_SGDOCE_TIPO_VINCULO_ARTEFATO_ANEXACAO, self::T_SGDOCE_TIPO_VINCULO_ARTEFATO_APENSACAO, self::T_SGDOCE_TIPO_ARTEFATO_PROCESSO, self::T_SGDOCE_TIPO_ARTEFATO_DOCUMENTO, self::T_SGDOCE_TIPO_VINCULO_ARTEFATO_INSERCAO, implode(',', (array) $dto->getTipoArtefatoAceito()), $dto->getSqArtefatoTipo() ? (int) $dto->getSqArtefatoTipo() : 'NULL', self::T_SGDOCE_TIPO_VINCULO_ARTEFATO_REFERENCIA, self::T_SGDOCE_TIPO_VINCULO_ARTEFATO_APOIO, self::T_SGDOCE_TIPO_VINCULO_ARTEFATO_DESPACHO, self::T_SGDOCE_TIPO_VINCULO_ARTEFATO_AUTUACAO, self::T_SGDOCE_TIPO_STATUS_SOLICITACAO_FINALIZADA, \Core_Configuration::getSgdoceStatusTramiteCancelado(), \Core_Configuration::getSgdoceTipoArtefatoProcesso(), \Core_Configuration::getSgdoceStatusTramiteTramitado());
        return $this->_em->createNativeQuery($strQuery, $rsm)->useResultCache(false);
    }
コード例 #24
0
ファイル: VwChefia.php プロジェクト: sgdoc/sgdoce-codigo
 public function isResponsavelSetor(\Core_Dto_Abstract $dto)
 {
     $_qb = $this->getEntityManager()->createQueryBuilder();
     $query = $_qb->select('c')->from($this->_entityName, 'c')->join('c.sqDestinacaoFgDas', 'dfd')->join('dfd.sqUnidadeOrgDestinada', 'uod')->join('c.sqProfissionalTitular', 'pt')->join('pt.sqProfissional', 'p')->join('c.sqProfissionalSubstituto', 'pt2')->join('pt2.sqProfissional', 'ps')->where($_qb->expr()->orX()->add($_qb->expr()->eq('p.sqPessoa', ':sqPessoa'))->add($_qb->expr()->eq('ps.sqPessoa', ':sqPessoa')))->andWhere('uod.sqPessoa = :sqUnidadeOrg')->setParameter('sqUnidadeOrg', $this->getSicaUnidadeOrg())->setParameter('sqPessoa', $dto->getSqResponsavel())->getQuery()->getResult();
     return $query;
 }