/**
  * método que adiciona a clausula where
  * @param query
  * @return query
  */
 public function addWhere(\Doctrine\ORM\QueryBuilder &$query, \Core_Dto_Search $search, $nuCpfCnpjPassaporte)
 {
     $sqPessoa = $search->getSqPessoaCorporativo() ?: $search->getSqPessoa();
     if ($sqPessoa) {
         $query->andWhere('p.sqPessoa = :sqPessoa')->setParameter('sqPessoa', $sqPessoa);
     }
     switch ($search->getSqTipoPessoa()) {
         case \Core_Configuration::getSgdoceTipoPessoaPessoaFisica():
             $passaporte = $this->getDocumento();
             $query->leftJoin('p.sqPessoaFisica', 'pf');
             //passar cpf ou passaporte , passa parametro
             if ($nuCpfCnpjPassaporte != '') {
                 if ($search->getSqNacionalidade() == '1') {
                     $query->andWhere('pf.nuCpf = :nuCpf')->setParameter('nuCpf', $nuCpfCnpjPassaporte);
                 } else {
                     $query->leftJoin("p.sqPessoaDocumento", "d", "WITH", "d.sqAtributoTipoDocumento = :sqAtributoTipoDocumento")->setParameter("sqAtributoTipoDocumento", $passaporte['sqAtributoTipoDocumento'])->andWhere('pf.sqNacionalidade <> :sqNacionalidade')->setParameter('sqNacionalidade', '1')->andWhere('d.txValor = :txValor')->setParameter('txValor', $nuCpfCnpjPassaporte);
                 }
             }
             break;
         case \Core_Configuration::getSgdoceTipoPessoaPessoaJuridica():
             $query->leftJoin('p.sqPessoaJuridica', 'pj');
             if ($nuCpfCnpjPassaporte != '') {
                 $query->andWhere('pj.nuCnpj = :nuCnpj')->setParameter('nuCnpj', $nuCpfCnpjPassaporte);
             }
             break;
         case \Core_Configuration::getSgdoceTipoPessoaMinisterioPublico():
             $query->leftJoin('p.sqUnidadeOrgInterna', 'ui');
             $query->leftJoin('p.sqRppn', 'rpn');
             break;
         case \Core_Configuration::getSgdoceTipoPessoaOutrosOrgaos():
             $query->leftJoin('p.sqUnidadeOrgExterna', 'ue');
             break;
     }
 }
Beispiel #2
0
 /**
  * método para pesquisa de unidades organizacinais para combo
  * @param array $params
  * @return array $out
  */
 public function getDadosEmail(\Core_Dto_Search $dto)
 {
     $queryBuilder = $this->getEntityManager()->createQueryBuilder()->select('e')->from('app:VwEmail', 'e')->andWhere('e.sqPessoa = :sqPessoa')->setParameter('sqPessoa', $dto->getSqPessoa());
     $result = $queryBuilder->getQuery()->execute();
     if (!$result) {
         $result[] = new \Sgdoce\Model\Entity\VwEmail();
     }
     return $result[0];
 }
 /**
  *
  * @param \Core_Dto_Search $dto
  * @return boolean
  */
 public function inMyDashboard(\Core_Dto_Search $dto)
 {
     $entityTramite = $this->find($dto->getSqArtefato());
     if ($entityTramite && !$entityTramite->getSqPessoaRecebimento()) {
         return false;
     }
     $isSqPessoa = $entityTramite && $entityTramite->getSqPessoaRecebimento() && $entityTramite->getSqPessoaRecebimento()->getSqPessoa() == $dto->getSqPessoa();
     $isSqPessoaDestino = $entityTramite && $entityTramite->getSqPessoaDestino() && $entityTramite->getSqPessoaDestino()->getSqPessoa() == $dto->getSqPessoaDestino();
     $isCanceladoOuDevolvido = $entityTramite && in_array($entityTramite->getSqStatusTramite()->getSqStatusTramite(), array(\Core_Configuration::getSgdoceStatusTramiteCancelado(), \Core_Configuration::getSgdoceStatusTramiteDevolvido()));
     if ($entityTramite && (!$isSqPessoa || !$isSqPessoaDestino && !$isCanceladoOuDevolvido)) {
         return false;
     }
     return true;
 }
Beispiel #4
0
 public function saveEmprestimo(\Core_Dto_Search $dto)
 {
     try {
         $filter = new \Zend_Filter();
         $filter->addFilter(new \Zend_Filter_StringTrim())->addFilter(new \Zend_Filter_StripTags());
         $validate = new \Zend_Validate_StringLength(array('max' => 250, 'encoding' => 'UTF-8'));
         $tipo = $dto->getDestinoInterno();
         $txMotivo = $filter->filter($dto->getTxMotivo());
         $noPessoaEntregue = $filter->filter($dto->getNoPessoaEntregue());
         if (!$validate->isValid($txMotivo)) {
             throw new \Core_Exception_ServiceLayer_Verification('Texto muito logo para o motivo');
         }
         if (!$validate->isValid($noPessoaEntregue)) {
             throw new \Core_Exception_ServiceLayer_Verification('Texto muito logo para o nome da pessoa a quem será entregue o artefato');
         }
         $dtOperacao = \Zend_Date::now();
         $sqTipoHistorico = \Core_Configuration::getSgdoceTipoHistoricoArquivoEmprestado();
         if ($tipo == 'externo') {
             $sqPessoa = $dto->getSqPessoa();
         } else {
             $sqPessoa = $dto->getSqPessoaIcmbioDestino();
         }
         foreach ($dto->getSqArtefato()->getApi() as $method) {
             $entityArtefato = $this->_getRepository('app:Artefato')->find($dto->getSqArtefato()->{$method}());
             $entityCaixaArtefato = $this->_getRepository('app:CaixaArtefato')->findOneBy(array('sqArtefato' => $entityArtefato->getSqArtefato()));
             //gerar historico arquivo com o tipo 8 \Core_Configuration::getSgdoceTipoHistoricoArquivoEmprestado()
             $entityCaixaHistorico = $this->getServiceLocator()->getService('CaixaArtefato')->insertHistorico($entityCaixaArtefato, $dtOperacao, $sqTipoHistorico);
             //registrar o emprestimo
             $entityEmprestimo = $this->_newEntity('app:Emprestimo');
             $entityEmprestimo->setSqCaixaHistorico($entityCaixaHistorico)->setSqPessoaEmprestimo($this->getEntityManager()->getPartialReference('app:VwPessoa', $sqPessoa))->setTxMotivo($txMotivo)->setNoPessoaEntregue($noPessoaEntregue);
             $this->getEntityManager()->persist($entityEmprestimo);
         }
         $this->getEntityManager()->flush();
     } catch (\Exception $e) {
         throw $e;
     }
 }
 /**
  * Realiza consulta pessoa existente
  * @param \Core_Dto_Search $dtoSearch
  */
 public function findCargoAssinante($dtoSearch)
 {
     return $this->_getRepository('app:VwProfissional')->findOneBy(array('sqProfissional' => $dtoSearch->getSqPessoa()));
 }
Beispiel #6
0
 public function listGrid(\Core_Dto_Search $dto)
 {
     return $this->_em->createQueryBuilder()->select('p.sqPessoa, t.sqTelefone, tt.noTipoTelefone, t.nuDdd, t.nuTelefone')->from('app:VwTelefone', 't')->innerJoin('t.sqTipoTelefone', 'tt')->innerJoin('t.sqPessoa', 'p')->where('p.sqPessoa = :sqPessoa')->setParameter('sqPessoa', $dto->getSqPessoa());
 }
Beispiel #7
0
 /**
  *
  * Método que adiciona filtro de acordo com a caixa de minutas
  * @param \Doctrine\ORM\QueryBuilder $queryBuilder
  * @param \Core_Dto_Search $dto
  */
 protected function addFilterStatus(\Doctrine\ORM\QueryBuilder &$queryBuilder, \Core_Dto_Search $dto)
 {
     switch ($dto->getView()) {
         default:
             // RECEBIDAS E DEMAIS
             $queryBuilder->andWhere('((vcm.sqStatusArtefato = :sqStatusArtefato2')->setParameter('sqStatusArtefato2', \Core_Configuration::getSgdoceStatusRecebida())->orWhere('vcm.sqStatusArtefato = :sqStatusArtefato4))')->setParameter('sqStatusArtefato4', \Core_Configuration::getSgdoceStatusDevolvida())->andWhere('vcm.sqPessoa = :sqPessoa')->setParameter('sqPessoa', $dto->getSqPessoa());
             break;
         case self::TIPO_VISUALIZACAO_ENVIADA:
             // ENVIADA
             $queryBuilder->andWhere('(vcm.sqStatusArtefato = :sqStatusArtefato201')->setParameter('sqStatusArtefato201', self::ZER)->andWhere('vcm.sqPessoa = :sqPessoa)')->setParameter('sqPessoa', $dto->getSqPessoa());
             break;
         case self::TIPO_VISUALIZACAO_EM_ACOMPANHAMENTO:
             // EM ACOMPANHAMENTO
             $queryBuilder->andWhere('(vcm.sqPessoa = :sqPessoa)')->setParameter('sqPessoa', $dto->getSqPessoa());
             break;
         case self::TIPO_VISUALIZACAO_PRODUZIDA:
             // PRODUZIDA
             $queryBuilder->andWhere('(vcm.sqStatusArtefato = :sqStatusArtefato49')->setParameter('sqStatusArtefato49', \Core_Configuration::getSgdoceStatusProduzida())->andWhere('vcm.sqPessoa = :sqPessoa)')->setParameter('sqPessoa', $dto->getSqPessoa());
             break;
     }
 }
 /**
  * Realiza o upload do arquivo
  */
 public function uploadFileEndereco($post)
 {
     $tipoPessoa = 'fisica';
     if (isset($post['sqTipoPessoa']) && $post['sqTipoPessoa']) {
         if ($post['sqTipoPessoa'] == \Core_Configuration::getSgdoceTipoPessoaPessoaJuridica()) {
             $tipoPessoa = 'juridica';
         }
     }
     $dto = new \Core_Dto_Search($post);
     $this->_redirect('/auxiliar/pessoa-' . $tipoPessoa . '/edit/id/' . $dto->getSqPessoa() . (isset($post['new']) && $post['new'] == 1 ? '/new/true' : '') . '/#enderecos');
 }
 public function getMatrizFilial(\Core_Dto_Search $dto)
 {
     $criteria = array();
     $matrizFilial = null;
     if ($dto->getSqPessoa()) {
         $entityJuridica = $this->_getRepository('app:VwPessoaJuridica')->find($dto->getSqPessoa());
         $criteria['sqPessoa'] = $dto->getSqPessoa();
         if ($entityJuridica) {
             $criteria['nuCgc'] = \Zend_Filter::filterStatic($entityJuridica->getNuCnpj(), 'Digits');
             $criteria['nuRaiz'] = substr(\Zend_Filter::filterStatic($entityJuridica->getNuCnpj(), 'Digits'), 0, 8);
             $matrizFilial = $this->_getRepository('app:VwPessoaJuridica')->getMatrizFilial($criteria);
         }
         return $matrizFilial;
     }
     if ($dto->getNuCnpj()) {
         $criteria['nuCgc'] = \Zend_Filter::filterStatic($dto->getNuCnpj(), 'Digits');
         $criteria['nuRaiz'] = substr(\Zend_Filter::filterStatic($dto->getNuCnpj(), 'Digits'), 0, 8);
         $matrizFilial = $this->_getRepository('app:VwPessoaJuridica')->getMatrizFilial($criteria);
         return $matrizFilial;
     }
 }
Beispiel #10
0
 /**
  * Verifica se o usuário tem acesso a uma determinada rota
  * @param \Core_Dto_Search $dtoSearch
  * @return Object
  */
 public function verificaUsuarioRota(\Core_Dto_Search $dtoSearch)
 {
     $rsm = new \Doctrine\ORM\Query\ResultSetMapping($this->_em);
     $rsm->addScalarResult('sq_pessoa', 'sqPessoa', 'integer');
     $query = $this->_em->createNativeQuery('
             SELECT * FROM sicae.vw_usuario u
             INNER JOIN sicae.vw_usuario_perfil up on up.sq_usuario = u.sq_usuario
             INNER JOIN sicae.vw_perfil p on p.sq_perfil = up.sq_perfil
             INNER JOIN sicae.vw_perfil_funcionalidade pf on pf.sq_perfil = p.sq_perfil
             INNER JOIN sicae.vw_funcionalidade f on f.sq_funcionalidade = pf.sq_funcionalidade
             INNER JOIN sicae.vw_rota r on f.sq_funcionalidade = r.sq_funcionalidade
             WHERE u.sq_pessoa = :sqPessoa
             AND   r.tx_rota = :txRota', $rsm);
     $query->setParameter('sqPessoa', $dtoSearch->getSqPessoa());
     $query->setParameter('txRota', $dtoSearch->getTxRota());
     $result = $query->getResult();
     if (count($result) > 0) {
         return TRUE;
     }
     return FALSE;
 }
Beispiel #11
0
 /**
  * Verifica se o artefato possui tramite para a pessoa logada
  *
  * @param \Core_Dto_Search $dto
  * @return boolean
  */
 public function canViewSigiloso(\Core_Dto_Search $dto)
 {
     $queryBuilder = $this->_em->createQueryBuilder();
     $queryBuilder->select('count(ta.sqTramiteArtefato) as qtdTramite')->from($this->_entityName, 'ta')->where($queryBuilder->expr()->eq('ta.sqArtefato', ':sqArtefato'))->andWhere($queryBuilder->expr()->eq('ta.sqPessoaRecebimento', $dto->getSqPessoa()))->andWhere($queryBuilder->expr()->neq('ta.sqStatusTramite', \Core_Configuration::getSgdoceStatusTramiteCancelado()));
     $qb = $queryBuilder;
     $qb->setParameter('sqArtefato', $dto->getSqArtefato());
     $qtdTramiteArtefato = $qb->getQuery()->getSingleScalarResult();
     //se o artefato da vez não possui tramite para a pessoa em questão
     //busca o artefato principal da arvore para verificar se possui tramite para a pessoa logada
     if (!$qtdTramiteArtefato) {
         $sqArtefatoPrincipal = $this->_em->getRepository('app:ArtefatoVinculo')->getSqArtefatoPrincipal($dto);
         if ($sqArtefatoPrincipal) {
             $qtdTramiteArtefato = $qb->setParameter('sqArtefato', $sqArtefatoPrincipal)->getQuery()->getSingleScalarResult();
         }
     }
     return $qtdTramiteArtefato > 0;
 }
Beispiel #12
0
 public function getSolicitacaoDuplicado(\Core_Dto_Search $dto)
 {
     $rsm = new \Doctrine\ORM\Query\ResultSetMapping($this->_em);
     $rsm->addScalarResult('sq_artefato', 'sqArtefato', 'integer');
     $rsm->addScalarResult('sq_solicitacao', 'sqSolicitacao', 'integer');
     $rsm->addScalarResult('sq_tipo_assunto_solicitacao', 'sqTipoAssuntoSolicitacao', 'integer');
     $rsm->addScalarResult('ds_solicitacao', 'dsSolicitacao', 'string');
     $rsm->addScalarResult('dt_solicitacao', 'dtSolicitacao', 'zenddate');
     $sql = 'SELECT s.*
               FROM sgdoce.solicitacao s
               JOIN sgdoce.vw_ultimo_status_solicitacao uss USING (sq_solicitacao)
              WHERE s.sq_artefato = :sqArtefato
                AND s.sq_tipo_assunto_solicitacao = :sqTipoAssuntoSolicitacao
                AND s.sq_pessoa = :sqPessoa
                AND s.sq_unidade_org = :sqUnidadeOrg
                AND uss.sq_tipo_status_solicitacao <> :sqStatusAberta';
     $nq = $this->_em->createNativeQuery($sql, $rsm)->setParameter('sqArtefato', $dto->getSqArtefato())->setParameter('sqTipoAssuntoSolicitacao', $dto->getSqTipoAssuntoSolicitacao())->setParameter('sqPessoa', $dto->getSqPessoa())->setParameter('sqUnidadeOrg', $dto->getSqUnidadeOrg())->setParameter('sqStatusAberta', \Core_Configuration::getSgdoceTipoStatusSolicitacaoFinalizada())->useResultCache(false);
     return $nq->getScalarResult();
 }
Beispiel #13
0
 /**
  * Obtém os dados da pessoa
  * @return array
  */
 public function searchPessoaProfissinal(\Core_Dto_Search $dto)
 {
     $queryBuilder = $this->getEntityManager()->createQueryBuilder()->select('vf,c.noCargo')->from('app:VwProfissional', 'vf')->innerJoin('vf.sqCargo', 'c');
     $queryBuilder->andWhere('vf.sqProfissional = :sqProfissional')->setParameter('sqProfissional', $dto->getSqPessoa());
     return $queryBuilder->getQuery()->getOneOrNullResult();
 }