Esempio n. 1
0
 /**
  * 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;
     }
 }
Esempio n. 2
0
 /**
  * método para cadastrar pessoa na entidade pessoa sgdoce caso necessario
  * @param \Core_Dto_Search $dto
  */
 public function validarPessoa($dto)
 {
     $criteria = array('sqPessoaCorporativo' => $dto->getSqPessoaCorporativo());
     $pessoaSgdoce = $this->_getRepository('app:PessoaSgdoce')->findBy($criteria);
     if (!$pessoaSgdoce) {
         $criteria = array('sqPessoa' => $dto->getSqPessoaCorporativo());
         $pessoa = $this->_getRepository('app:VwPessoa')->findBy($criteria);
         $pessoa = $pessoa[0];
         $sqTipoPessoa = $this->_getRepository('app:VwTipoPessoa')->find($pessoa->getSqTipoPessoa());
         $sqPessoaCorp = $this->_getRepository('app:VwPessoa')->find($pessoa->getSqPessoa());
         $entity = new \Sgdoce\Model\Entity\PessoaSgdoce();
         $entity->setNoPessoa($pessoa->getNoPessoa());
         $entity->setSqTipoPessoa($sqTipoPessoa);
         $entity->setNoPessoa($pessoa->getNoPessoa());
         $entity->setSqPessoaCorporativo($sqPessoaCorp);
         if ($sqPessoaCorp->getSqTipoPessoa() == \Core_Configuration::getSgdoceTipoPessoaPessoaFisica()) {
             $pessoa = $this->_getRepository('app:VwPessoaFisica')->find($pessoa->getSqPessoa());
             $entity->setNuCpfCnpjPassaporte($pessoa->getNuCpf());
         }
         if ($sqPessoaCorp->getSqTipoPessoa() == \Core_Configuration::getSgdoceTipoPessoaPessoaJuridica()) {
             $pessoa = $this->_getRepository('app:VwPessoaJuridica')->find($pessoa->getSqPessoa());
             $entity->setNuCpfCnpjPassaporte($pessoa->getNuCnpj());
         }
         $this->getEntityManager()->persist($entity);
         $this->getEntityManager()->flush();
     }
 }
Esempio n. 3
0
 public function getDadosPessoa(\Core_Dto_Search $search)
 {
     $sqTipoPessoa = $search->getSqTipoPessoa();
     $rsm = new \Doctrine\ORM\Query\ResultSetMapping($this->_em);
     $rsm->addScalarResult('sq_pessoa', 'sqPessoa', 'integer');
     $rsm->addScalarResult('no_pessoa', 'noPessoa', 'string');
     $query = $this->_em->createNativeQuery(NULL, $rsm);
     $filter = new \Zend_Filter_Digits();
     if ($sqTipoPessoa == \Core_Configuration::getSgdoceTipoPessoaPessoaFisica()) {
         $rsm->addScalarResult('nu_cpf', 'nuCpf', 'string');
         $sql = "SELECT\n                        p.sq_pessoa,\n                        p.no_pessoa,\n                        pf.nu_cpf\n                    FROM  corporativo.vw_pessoa p\n                    JOIN  corporativo.vw_pessoa_fisica pf on pf.sq_pessoa = p.sq_pessoa";
         if ($search->getNuCpfCnpjPassaporte()) {
             $sql .= " WHERE pf.nu_cpf = :nuCpf";
             $query->setParameter('nuCpf', $filter->filter($search->getNuCpfCnpjPassaporte()), 'string');
         } elseif ($search->getSqPessoaCorporativo()) {
             $sql .= " WHERE p.sq_pessoa = :sqPessoa";
             $query->setParameter('sqPessoa', $search->getSqPessoaCorporativo(), 'integer');
         }
         $query->setSQL($sql);
     }
     if ($sqTipoPessoa == \Core_Configuration::getSgdoceTipoPessoaPessoaJuridica()) {
         $rsm->addScalarResult('nu_cnpj', 'nuCnpj', 'string');
         $sql = 'SELECT
                    p.sq_pessoa,
                    p.no_pessoa,
                    pj.nu_cnpj
                FROM corporativo.vw_pessoa p
                JOIN corporativo.vw_pessoa_juridica pj on pj.sq_pessoa = p.sq_pessoa';
         if ($search->getNuCpfCnpjPassaporte()) {
             $sql .= ' WHERE pj.nu_cnpj = :nuCnpj';
             $query->setParameter('nuCnpj', $filter->filter($search->getNuCpfCnpjPassaporte()), 'string');
         } elseif ($search->getSqPessoaCorporativo()) {
             $sql .= " WHERE p.sq_pessoa = :sqPessoa";
             $query->setParameter('sqPessoa', $search->getSqPessoaCorporativo(), 'integer');
         }
         $query->setSQL($sql);
     }
     $result = $query->getResult();
     return !empty($result) ? current($result) : array();
 }
Esempio n. 4
0
 /**
  * método que pesquisa assinatura para preencher autocomplete
  * @param string $term
  * @return multitype:NULL
  */
 public function searchVwUnidadeOrg(\Core_Dto_Search $dto)
 {
     $queryBuilder = $this->_em->createQueryBuilder();
     $queryBuilder->select('uo')->from('app:VwUnidadeOrg', 'uo')->where('uo.sqUnidadeOrg = :sqPessoa')->setParameter('sqPessoa', $dto->getSqPessoaCorporativo());
     $res = $queryBuilder->getQuery()->getArrayResult();
     if (count($res)) {
         $out = array();
         foreach ($res as $item) {
             $out['sqTipoPessoa'] = $item['sqTipoPessoa'];
         }
         return $out;
     } else {
         return $res;
     }
 }