Exemplo n.º 1
0
 public function findDataInstitucional($codigo)
 {
     if (NULL === $codigo) {
         return array('sqPessoa' => NULL, 'noPessoa' => NULL, 'nuCpf' => NULL, 'nuDdd' => NULL, 'nuTelefone' => NULL, 'txEmail' => NULL);
     }
     $query = $this->_em->createQueryBuilder();
     $tipoTelefoneInstituicional = \Core_Configuration::getCorpTipoTelefoneInstitucional();
     $tipoEmailInstituicional = \Core_Configuration::getCorpTipoEmailInstitucional();
     $query->select('p.sqPessoa', 'p.noPessoa', 'pf.nuCpf', 't.nuDdd, t.nuTelefone', 'e.txEmail')->from('app:PessoaFisica', 'pf')->innerJoin('pf.sqPessoa', 'p')->leftJoin('p.telefone', 't', 'WITH', $query->expr()->eq('t.sqTipoTelefone', ':tipoTelefone'))->leftJoin('p.email', 'e', 'WITH', $query->expr()->eq('e.sqTipoEmail', ':tipoEmail'))->where($query->expr()->eq('p.sqPessoa', ':sqPessoa'))->andWhere($query->expr()->eq('pf.sqPessoa', ':sqPessoa'))->setParameter('tipoTelefone', $tipoTelefoneInstituicional, 'integer')->setParameter('tipoEmail', $tipoEmailInstituicional, 'integer')->setParameter('sqPessoa', $codigo, 'integer');
     $data = $query->getQuery()->execute(array(), \Doctrine\ORM\AbstractQuery::HYDRATE_ARRAY);
     if (!$data) {
         return array('sqPessoa' => NULL, 'noPessoa' => NULL, 'nuCpf' => NULL, 'nuDdd' => NULL, 'nuTelefone' => NULL, 'txEmail' => NULL);
     }
     return $data[0];
 }
Exemplo n.º 2
0
 protected function _queryFull($query)
 {
     $tipoTelefoneInstituicional = \Core_Configuration::getCorpTipoTelefoneInstitucional();
     $tipoEmailInstituicional = \Core_Configuration::getCorpTipoEmailInstitucional();
     $query->add('select', 'pf.nuCpf, t.nuDdd, t.nuTelefone, e.txEmail' . ', s.txUrl, s.txDescricao, s.txUrlHelp, s.txEnderecoImagem, l.noLeiaute', TRUE);
     $query->innerJoin('s.sqLeiaute', 'l')->leftJoin('r.telefone', 't', 'WITH', $query->expr()->eq('t.sqTipoTelefone', ':tipoTelefone'))->leftJoin('r.email', 'e', 'WITH', $query->expr()->eq('e.sqTipoEmail', ':tipoEmail'))->setParameter('tipoTelefone', $tipoTelefoneInstituicional, 'integer')->setParameter('tipoEmail', $tipoEmailInstituicional, 'integer');
     return $query;
 }
Exemplo n.º 3
0
 /**
  * @return
  */
 public function listGridHistorico(\Core_Dto_Search $dto)
 {
     $listCondition = array('getSqTipoAssuntoSolicitacao' => array("=" => array("AND" => 'tas.sq_tipo_assunto_solicitacao')));
     $operationTypeArtefato = 'IS NULL';
     if (in_array($dto->getSqTipoArtefato(), array(1, 2))) {
         $operationTypeArtefato = '=';
     }
     $listCondition['getSqTipoArtefato'] = array($operationTypeArtefato => array("AND" => 'taa.sq_tipo_artefato'));
     if ($dto->getNuArtefato() != '' && $dto->getSqTipoArtefato()) {
         if ($dto->getSqTipoArtefato() == \Core_Configuration::getSgdoceTipoArtefatoProcesso()) {
             $listCondition['getNuArtefato'] = array("ilike" => array("OR" => array("formata_numero_artefato(at.nu_artefato, ap.co_ambito_processo)", 'at.nu_artefato')));
         } else {
             $listCondition['getNuArtefato'] = array("ilike" => array("AND" => "formata_numero_digital(at.nu_digital)"));
         }
     }
     $where = $this->getEntityManager()->getRepository('app:Artefato')->getCriteriaText($listCondition, $dto);
     if ($dto->getDtSolicitacao() != "") {
         $dateInicial = new \Zend_Date($dto->getDtSolicitacao());
         $dateFinal = new \Zend_Date($dto->getDtSolicitacao());
         $dateInicial->setHour(00)->setMinute(00)->setSecond(00);
         $dateFinal->setHour(23)->setMinute(59)->setSecond(59);
         $where .= $where ? ' AND ' : ' ';
         $where .= "s.dt_solicitacao between '{$dateInicial->get(\Zend_Date::ISO_8601)}' and '{$dateFinal->get(\Zend_Date::ISO_8601)}'";
     }
     $rsm = new \Doctrine\ORM\Query\ResultSetMapping($this->_em);
     $rsm->addScalarResult('total_record', 'totalRecord', 'integer');
     $rsm->addScalarResult('sq_artefato', 'sqArtefato', 'integer');
     $rsm->addScalarResult('sq_solicitacao', 'sqSolicitacao', 'integer');
     $rsm->addScalarResult('dt_solicitacao', 'dtSolicitacao', 'string');
     $rsm->addScalarResult('no_tipo_status_solicitacao', 'noTipoStatusSolicitacao', 'string');
     $rsm->addScalarResult('no_pessoa_abertura', 'noPessoaAbertura', 'string');
     $rsm->addScalarResult('no_unidade_abertura', 'noUnidadeAbertura', 'string');
     $rsm->addScalarResult('nu_artefato', 'nuArtefato', 'string');
     $rsm->addScalarResult('no_tipo_assunto_solicitacao', 'noTipoAssuntoSolicitacao', 'string');
     $rsm->addScalarResult('ds_solicitacao', 'dsSolicitacao', 'string');
     $rsm->addScalarResult('has_image', 'hasImage', 'boolean');
     $sql = "SELECT COUNT(s.sq_solicitacao) OVER() AS total_record,\n                        s.sq_artefato,\n                        s.sq_solicitacao,\n                        s.dt_solicitacao,\n                        uss.no_tipo_status_solicitacao,\n                        s.sq_pessoa as sq_pessoa_abertura,\n                        und_abertura.sg_unidade_org as no_unidade_abertura,\n                        pes_abertura.no_pessoa || (COALESCE('<br>(' || tel.nu_ddd || ') ' || tel.nu_telefone, '')) as no_pessoa_abertura,\n\n                        CASE\n                         WHEN at.nu_digital IS NOT NULL THEN\n                            sgdoce.formata_numero_digital(at.nu_digital)\n                         ELSE\n                            sgdoce.formata_numero_artefato(at.nu_artefato, ap.co_ambito_processo)\n                        END AS nu_artefato,\n                        tas.no_tipo_assunto_solicitacao,\n                        s.ds_solicitacao\n                   FROM sgdoce.solicitacao s\n                   JOIN sgdoce.tipo_assunto_solicitacao     AS tas USING(sq_tipo_assunto_solicitacao)\n                   LEFT JOIN (\n                       sgdoce.artefato AS at\n                       INNER JOIN sgdoce.tipo_artefato_assunto AS taa ON at.sq_tipo_artefato_assunto = taa.sq_tipo_artefato_assunto\n                        LEFT JOIN sgdoce.artefato_processo     AS ap  ON at.sq_artefato = ap.sq_artefato\n                   ) ON s.sq_artefato = at.sq_artefato\n\n                   JOIN corporativo.vw_pessoa               AS pes_abertura ON s.sq_pessoa = pes_abertura.sq_pessoa\n                   JOIN corporativo.vw_unidade_org          AS und_abertura ON s.sq_unidade_org = und_abertura.sq_pessoa\n                   JOIN sgdoce.vw_ultimo_status_solicitacao AS uss ON s.sq_solicitacao = uss.sq_solicitacao\n                   LEFT JOIN corporativo.vw_telefone        AS tel ON (tel.sq_pessoa = pes_abertura.sq_pessoa AND tel.sq_tipo_telefone = " . \Core_Configuration::getCorpTipoTelefoneInstitucional() . ")\n                  %s\n                ORDER BY s.dt_solicitacao DESC";
     if ($where != "") {
         $sql = sprintf($sql, "WHERE {$where}");
     } else {
         $sql = sprintf($sql, "");
     }
     return $this->_em->createNativeQuery($sql, $rsm)->useResultCache(false);
 }
Exemplo n.º 4
0
 /**
  * Salva dados de endereço, telefone e email vindos do infoconv quando for cadastro de nova PJ
  *
  * @param integer $sqPessoa
  * @param \Core_Dto_Mapping $dto
  * @return \Principal\Service\PessoaJuridica
  */
 private function _processAddressPhoneEmail($sqPessoa, \Core_Dto_Mapping $dto)
 {
     $infoconvAddress = $dto->getAddress_infoconv();
     $infoconvPhone = $dto->getPhone_infoconv();
     $infoconvEmail = $dto->getEmail_infoconv();
     if ($infoconvAddress) {
         $infoconvAddress = json_decode(str_replace('\\', '', $infoconvAddress));
         $addressMethod = 'libCorpSaveEndereco';
         $addressRepository = 'app:Endereco';
         $addressFilters = array('sqCep' => 'Digits');
         $arrAddressValues = array(array('name' => 'sqPessoa', 'value' => $sqPessoa), array('name' => 'sqTipoEndereco', 'value' => \Core_Configuration::getCorpTipoEnderecoInstitucional()));
         $fnCropString = function ($str, $length) {
             if (mb_strlen($str, 'UTF-8') > $length) {
                 $str = mb_substr($str, 0, $length, 'UTF-8');
             }
             return $str;
         };
         foreach ($infoconvAddress as $key => $value) {
             switch ($key) {
                 case 'sqEstado':
                     //infoconv retorno a sigla do estado
                     if (!is_numeric($value)) {
                         $arrEntEstado = $this->_getRepository('app:Estado')->findBySgEstado(trim($value));
                         if ($arrEntEstado) {
                             $value = current($arrEntEstado)->getSqEstado();
                         }
                     }
                     break;
                 case 'txComplemento':
                 case 'noBairro':
                     $value = $fnCropString($value, 100);
                     break;
                 case 'txEndereco':
                     $value = $fnCropString($value, 200);
                     break;
                 case 'nuEndereco':
                     $value = $fnCropString($value, 6);
                     break;
                 default:
                     break;
             }
             $arrAddressValues[] = array('name' => $key, 'value' => $value);
         }
         //endforeach;
         //salva os dados do endereco
         $resultAddress = $this->saveFormWebService($addressRepository, $addressMethod, $arrAddressValues, $addressFilters);
     }
     if ($infoconvPhone) {
         $infoconvPhone = json_decode(str_replace('\\', '', $infoconvPhone));
         $phoneMethod = 'libCorpSaveTelefone';
         $phoneRepository = 'app:Telefone';
         $phoneFilters = array('nuDdd' => 'Digits', 'nuTelefone' => 'Digits');
         $arrPhoneValues = array(array('name' => 'sqPessoa', 'value' => $sqPessoa), array('name' => 'sqTipoTelefone', 'value' => \Core_Configuration::getCorpTipoTelefoneInstitucional()));
         foreach ($infoconvPhone as $key => $value) {
             $arrPhoneValues[] = array('name' => $key, 'value' => $value);
         }
         //endforeach;
         //salva os dados do telefone
         $resultPhone = $this->saveFormWebService($phoneRepository, $phoneMethod, $arrPhoneValues, $phoneFilters);
     }
     if ($infoconvEmail) {
         $infoconvEmail = json_decode(str_replace('\\', '', $infoconvEmail));
         $emailMethod = 'libCorpSaveEmail';
         $emailRepository = 'app:Email';
         $arrEmailValues = array(array('name' => 'sqPessoa', 'value' => $sqPessoa), array('name' => 'sqTipoEmail', 'value' => \Core_Configuration::getCorpTipoEmailInstitucional()));
         $arrEmailValues[] = array('name' => 'txEmail', 'value' => $infoconvEmail);
         //salva os dados do email
         $resultEmail = $this->saveFormWebService($emailRepository, $emailMethod, $arrEmailValues);
     }
     return $this;
 }
Exemplo n.º 5
0
 public function findUsers(\Core_Dto_Search $dto)
 {
     $tipoTelefoneInstituicional = \Core_Configuration::getCorpTipoTelefoneInstitucional();
     $tipoEmailInstituicional = \Core_Configuration::getCorpTipoEmailInstitucional();
     $queryBuilder = $this->_em->createQueryBuilder();
     $queryBuilder->select('pf.nuCpf, p.noPessoa, e.txEmail, t.nuTelefone, t.nuDdd, u.stAtivo, s.sqSistema, ' . 's.noSistema, s.sgSistema, pl.noPerfil, un.noPessoa noUnidade')->from($this->_entityName, 'u')->innerJoin('u.sqPessoa', 'p')->innerJoin('p.sqPessoaFisica', 'pf')->leftJoin('p.telefone', 't', 'WITH', $queryBuilder->expr()->eq('t.sqTipoTelefone', ':tipoTelefone'))->leftJoin('p.email', 'e', 'WITH', $queryBuilder->expr()->eq('e.sqTipoEmail', ':tipoEmail'))->leftJoin('u.sqUsuarioPerfil', 'up')->leftJoin('up.sqPerfil', 'pl')->leftJoin('pl.sqSistema', 's')->leftJoin('up.sqUnidadeOrgPessoa', 'un')->setParameter('tipoTelefone', $tipoTelefoneInstituicional, 'integer')->setParameter('tipoEmail', $tipoEmailInstituicional, 'integer')->orderBy('p.noPessoa, s.sgSistema, s.noSistema')->addOrderBy('pl.noPerfil, un.noPessoa');
     if ($dto->hasNuCpf()) {
         $cpf = \Zend_Filter::filterStatic($dto->getNuCpf(), 'Digits');
         $queryBuilder->andWhere($queryBuilder->expr()->eq('pf.nuCpf', ':cpf'))->setParameter('cpf', $cpf);
     }
     if ($dto->hasNoPessoa()) {
         $queryBuilder->andWhere($queryBuilder->expr()->like($queryBuilder->expr()->lower('p.noPessoa'), ':pessoa'))->setParameter('pessoa', '%' . mb_strtolower($dto->getNoPessoa(), 'utf-8') . '%');
     }
     if ($dto->hasSqUnidadeOrg() && $dto->getSqUnidadeOrg()) {
         $queryBuilder->andWhere($queryBuilder->expr()->eq('un.sqUnidadeOrgPessoa', ':unidade'))->setParameter('unidade', $dto->getSqUnidadeOrg());
     }
     if ($dto->hasSqSistema()) {
         $queryBuilder->andWhere($queryBuilder->expr()->eq('s.sqSistema', ':sistema'))->setParameter('sistema', $dto->getSqSistema());
     }
     if ($dto->hasSqPerfil()) {
         $queryBuilder->andWhere($queryBuilder->expr()->eq('pl.sqPerfil', ':perfil'))->setParameter('perfil', $dto->getSqPerfil());
     }
     if ($dto->hasStAtivo()) {
         $queryBuilder->andWhere($queryBuilder->expr()->eq('u.stAtivo', ':ativo'))->setParameter('ativo', $dto->getStAtivo());
     }
     return $queryBuilder->getQuery()->getArrayResult();
 }