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]; }
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; }
/** * @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); }
/** * 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; }
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(); }