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
 /**
  * @param integer $sqSolicitacao
  */
 public function getStatusPorTipo($sqSolicitacao, $sqTipoStatusSolicitacao)
 {
     $sql = "SELECT  row_number() over() as rownum,\n                        s.sq_solicitacao,\n                        ss.sq_pessoa_triagem,\n                        ss.sq_pessoa_responsavel,\n                        ss.tx_comentario,\n                        to_char(ss.dt_operacao, 'DD/MM/YYYY') as dt_operacao,\n                        pt.no_pessoa as no_pessoa_triagem,\n                        pr.no_pessoa as no_pessoa_responsavel,\n                        ps.no_pessoa as no_pessoa_solicitacao,\n                        ss.sq_tipo_status_solicitacao,\n                        em.tx_email\n                FROM sgdoce.solicitacao s\n                JOIN sgdoce.status_solicitacao ss USING(sq_solicitacao)\n                JOIN corporativo.vw_pessoa ps ON s.sq_pessoa = ps.sq_pessoa\n                LEFT JOIN corporativo.vw_pessoa pt ON ss.sq_pessoa_triagem = pt.sq_pessoa\n                LEFT JOIN corporativo.vw_pessoa pr ON ss.sq_pessoa_responsavel = pr.sq_pessoa\n                LEFT JOIN corporativo.vw_email em\n                ON em.sq_pessoa = s.sq_pessoa AND em.sq_tipo_email = " . \Core_Configuration::getCorpTipoEmailInstitucional() . "\n                WHERE ss.sq_solicitacao = :sqSolicitacao AND ss.sq_tipo_status_solicitacao = :sqTipoStatusSolicitacao\n                ORDER BY ss.dt_operacao DESC, rownum ASC";
     $rsm = new \Doctrine\ORM\Query\ResultSetMapping();
     $rsm->addScalarResult('rownum', 'rownum');
     $rsm->addScalarResult('sq_solicitacao', 'sqSolicitacao');
     $rsm->addScalarResult('sq_pessoa_triagem', 'sqPessoaTriagem');
     $rsm->addScalarResult('sq_pessoa_responsavel', 'sqPessoaResponsavel');
     $rsm->addScalarResult('tx_comentario', 'txComentario');
     $rsm->addScalarResult('dt_operacao', 'dtOperacao');
     $rsm->addScalarResult('no_pessoa_triagem', 'noPessoaTriagem');
     $rsm->addScalarResult('no_pessoa_responsavel', 'noPessoaResponsavel');
     $rsm->addScalarResult('no_pessoa_solicitacao', 'noPessoaSolicitacao');
     $rsm->addScalarResult('tx_email', 'txEmail');
     $query = $this->_em->createNativeQuery($sql, $rsm);
     $query->setParameter('sqSolicitacao', $sqSolicitacao)->setParameter('sqTipoStatusSolicitacao', $sqTipoStatusSolicitacao);
     return $query->getScalarResult();
 }
Exemplo n.º 3
0
 /**
  * @return
  */
 public function addSolicitacaoMigracao($dtoSearch)
 {
     $entArtefato = $this->_getRepository('app:Artefato')->find($dtoSearch->getSqArtefato());
     if (!$entArtefato->isProcesso()) {
         $entSolicitacao = $this->_getRepository('app:SolicitacaoMigracaoImagem')->findRequest($dtoSearch);
         $entImagemArtefato = $this->_getRepository('app:VwUltimaImagemArtefato')->find($dtoSearch->getSqArtefato());
         if (!$entImagemArtefato && !$entSolicitacao && $this->getServiceLocator()->getService("Artefato")->isMigracao($dtoSearch) && $this->getServiceLocator()->getService("Artefato")->isInconsistent($dtoSearch, true)) {
             $entSolicMigracaoImagem = $this->_newEntity('app:SolicitacaoMigracaoImagem');
             $entArtefato = $this->getEntityManager()->getPartialReference('app:Artefato', $dtoSearch->getSqArtefato());
             $entVwUnidOrg = $this->getEntityManager()->getPartialReference('app:VwUnidadeOrg', $dtoSearch->getSqUnidadeOrg());
             $entVwPessoa = $this->getEntityManager()->getPartialReference('app:VwPessoa', $dtoSearch->getSqPessoa());
             $objZendDate = new \Zend_Date();
             $entEmail = $this->_getRepository('app:VwEmail')->findOneBy(array('sqPessoa' => $dtoSearch->getSqPessoa(), 'sqTipoEmail' => \Core_Configuration::getCorpTipoEmailInstitucional()));
             $entSolicMigracaoImagem->setSqArtefato($entArtefato);
             $entSolicMigracaoImagem->setSqPessoa($entVwPessoa);
             $entSolicMigracaoImagem->setSqUnidadeOrg($entVwUnidOrg);
             $entSolicMigracaoImagem->setDtSolicitacao($objZendDate);
             $entSolicMigracaoImagem->setStProcessado(0);
             $entSolicMigracaoImagem->setInTentativa(0);
             $entSolicMigracaoImagem->setTxEmail(trim($entEmail->getTxEmail()));
             $this->getEntityManager()->getUnitOfWork()->detach($entSolicMigracaoImagem);
             $this->getEntityManager()->persist($entSolicMigracaoImagem);
             $this->getEntityManager()->flush();
         }
     }
 }
Exemplo n.º 4
0
 private function _getEmailCorporativo($sqPessoa)
 {
     $entEmail = $this->_getRepository('app:VwEmail')->findOneBy(array('sqPessoa' => $sqPessoa, 'sqTipoEmail' => \Core_Configuration::getCorpTipoEmailInstitucional()));
     if (!$entEmail) {
         return NULL;
     }
     return $entEmail->getTxEmail();
 }
Exemplo n.º 5
0
 /**
  * tenta recuperar o email institucional caso nao encontra recupera o primeiro da lista
  *
  * @param \Sgdoce\Model\Entity\Solicitacao $entSolicitacao
  * @return \Sgdoce\Model\Entity\VwEmail
  */
 private function _emailSolicitante(\Sgdoce\Model\Entity\Solicitacao $entSolicitacao)
 {
     $arrEmailSolicitante = $entSolicitacao->getSqPessoa()->getSqEmail();
     if (count($arrEmailSolicitante) > 0) {
         $hasEmailInstitucional = false;
         //verifica se tem email institucional
         foreach ($arrEmailSolicitante as $key => $entVwEmail) {
             if ($entVwEmail->getSqTipoEmail()->getSqTipoEmail() == Core_Configuration::getCorpTipoEmailInstitucional()) {
                 $hasEmailInstitucional = true;
                 $entVwEmailSolicitante = $entVwEmail;
                 break;
             }
         }
         //se não tem pega o primeiro email
         if (!$hasEmailInstitucional) {
             $entVwEmailSolicitante = $arrEmailSolicitante[0];
         }
     } else {
         $entVwEmailSolicitante = new \Sgdoce\Model\Entity\VwEmail();
     }
     return $this->view->entVwEmailSolicitante = $entVwEmailSolicitante;
 }
Exemplo n.º 6
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.º 7
0
 /**
  * @return
  */
 public function listGrid(\Core_Dto_Search $dto)
 {
     $listCondition = array('getSqPessoaAbertura' => array("=" => array("AND" => 's.sq_pessoa')), 'getSqUnidadeOrgAbertura' => array("=" => array("AND" => 's.sq_unidade_org')), 'getSqTipoAssuntoSolicitacao' => array("=" => array("AND" => 'tas.sq_tipo_assunto_solicitacao')), 'getSqTipoStatusSolicitacao' => array("=" => array("AND" => 'uss.sq_tipo_status_solicitacao')), 'getSqTipoStatusSolicitacaoNot' => array("<>" => array("AND" => 'uss.sq_tipo_status_solicitacao')), 'getSqPessoaResponsavel' => array("=" => array("AND" => 'uss.sq_pessoa_responsavel')), 'getSqPessoaResponsavelIsNull' => array("IS" => array("AND" => 'uss.sq_pessoa_responsavel')), 'getSqPessoaResponsavelNot' => array("<>" => array("AND" => 'uss.sq_pessoa_responsavel')), 'getSearch' => array("ilike" => array('OR' => array('tas.no_tipo_assunto_solicitacao', 's.ds_solicitacao', 'pes_atendimento.no_pessoa', 'und_abertura.sg_unidade_org', 'pes_abertura.no_pessoa', 'at.nu_artefato', 'formata_numero_digital(at.nu_digital)', 'cast(s.sq_solicitacao as text)', 'tx_email'))));
     $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)"));
         }
     }
     $period = null;
     if ($dto->getDtSolicitacao() != "") {
         $period = "s.dt_solicitacao";
     }
     $where = $this->getEntityManager()->getRepository('app:Artefato')->getCriteriaText($listCondition, $dto, $period);
     $rsm = new \Doctrine\ORM\Query\ResultSetMapping($this->_em);
     $rsm->addScalarResult('sq_solicitacao', 'sqSolicitacao', 'integer');
     $rsm->addScalarResult('sq_artefato', 'sqArtefato', 'integer');
     $rsm->addScalarResult('no_tipo_assunto_solicitacao', 'noTipoAssuntoSolicitacao', 'string');
     $rsm->addScalarResult('ds_solicitacao', 'dsSolicitacao', 'string');
     $rsm->addScalarResult('sq_pessoa_abertura', 'sqPessoaAbertura', 'integer');
     $rsm->addScalarResult('no_pessoa_abertura', 'noPessoaAbertura', 'string');
     $rsm->addScalarResult('sq_unidade_abertura', 'sqUnidadeAbertura', 'integer');
     $rsm->addScalarResult('no_unidade_abertura', 'noUnidadeAbertura', 'string');
     $rsm->addScalarResult('sq_tipo_status_solicitacao', 'sqTipoStatusSolicitacao', 'integer');
     $rsm->addScalarResult('no_tipo_status_solicitacao', 'noTipoStatusSolicitacao', 'string');
     $rsm->addScalarResult('sq_tipo_assunto_solicitacao', 'sqTipoAssuntoSolicitacao', 'integer');
     $rsm->addScalarResult('sq_pessoa_responsavel', 'sqPessoaResponsavel', 'integer');
     $rsm->addScalarResult('has_image', 'hasImage', 'boolean');
     $rsm->addScalarResult('no_pessoa_atendimento', 'noPessoaAtendimento', 'string');
     $rsm->addScalarResult('dt_operacao', 'dtOperacao', 'string');
     $rsm->addScalarResult('dt_solicitacao', 'dtSolicitacao', 'string');
     $rsm->addScalarResult('nu_artefato', 'nuArtefato', 'string');
     $rsm->addScalarResult('nu_digital', 'nuDigital', 'string');
     $rsm->addScalarResult('sq_tipo_artefato', 'sqTipoArtefato', 'string');
     $rsm->addScalarResult('tx_email', 'txEmail', 'string');
     $rsm->addScalarResult('total_record', 'totalRecord', 'integer');
     $sql = "SELECT COUNT(s.sq_solicitacao) OVER() AS total_record,\n                        s.sq_solicitacao,\n                        s.sq_artefato,\n                        tas.no_tipo_assunto_solicitacao,\n                        s.ds_solicitacao,\n                        s.sq_pessoa as sq_pessoa_abertura,\n                        s.dt_solicitacao,\n                        pes_abertura.no_pessoa || (COALESCE('<br>(' || tel.nu_ddd || ') ' || tel.nu_telefone, '')) as no_pessoa_abertura,\n                        s.sq_unidade_org as sq_unidade_abertura,\n                        und_abertura.sg_unidade_org as no_unidade_abertura,\n                        uss.sq_tipo_status_solicitacao,\n                        uss.no_tipo_status_solicitacao,\n                        tas.sq_tipo_assunto_solicitacao,\n                        uss.sq_pessoa_responsavel,\n                        pes_atendimento.no_pessoa as no_pessoa_atendimento,\n                        uss.dt_operacao,\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                        sgdoce.formata_numero_digital(at.nu_digital) as nu_digital,\n                        taa.sq_tipo_artefato,\n                        EXISTS\n                        (\n                            SELECT\n                                 uia.sq_artefato\n                             FROM\n                                 sgdoce.vw_ultima_imagem_artefato uia\n                             WHERE\n                                 uia.sq_artefato = at.sq_artefato AND\n                                 taa.sq_tipo_artefato = " . \Core_Configuration::getSgdoceTipoArtefatoDocumento() . "\n                        UNION\n                            SELECT\n                                artv.sq_artefato_filho\n                            FROM\n                                sgdoce.artefato_vinculo artv\n                            JOIN sgdoce.artefato_imagem uia ON  uia.st_ativo and artv.sq_artefato_filho = uia.sq_artefato\n                                AND artv.sq_tipo_vinculo_artefato = " . \Core_Configuration::getSgdoceTipoVinculoArtefatoAutuacao() . "\n                            WHERE\n                                artv.sq_artefato_pai = at.sq_artefato AND\n                                taa.sq_tipo_artefato = " . \Core_Configuration::getSgdoceTipoArtefatoProcesso() . "\n                        ) has_image,\n                        em.tx_email\n                   FROM sgdoce.solicitacao s\n                   JOIN sgdoce.tipo_assunto_solicitacao     AS tas USING(sq_tipo_assunto_solicitacao)\n                   LEFT JOIN\n                   (\n                       sgdoce.artefato AS at\n                       INNER JOIN sgdoce.tipo_artefato_assunto AS taa\n                           ON at.sq_tipo_artefato_assunto = taa.sq_tipo_artefato_assunto\n                   )                                        ON s.sq_artefato = at.sq_artefato\n                   LEFT JOIN sgdoce.artefato_processo AS ap ON at.sq_artefato = ap.sq_artefato\n                   JOIN corporativo.vw_pessoa               AS pes_abertura ON s.sq_pessoa = pes_abertura.sq_pessoa\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                   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_pessoa               AS pes_atendimento ON uss.sq_pessoa_responsavel = pes_atendimento.sq_pessoa\n              LEFT JOIN corporativo.vw_email                AS em ON em.sq_pessoa = s.sq_pessoa AND em.sq_tipo_email = " . \Core_Configuration::getCorpTipoEmailInstitucional() . "\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.º 8
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.º 9
0
 public function getDataMail(\Core_Dto_Mapping $mapping, $perfis)
 {
     $tipoEmailInstituicional = \Core_Configuration::getCorpTipoEmailInstitucional();
     $queryBuilder = $this->_em->createQueryBuilder();
     $queryBuilder->select('p.noPessoa,  e.txEmail')->from($this->_entityName, 'u')->innerJoin('u.sqPessoa', 'p')->innerJoin('p.email', 'e', 'WITH', $queryBuilder->expr()->eq('e.sqTipoEmail', ':tipoEmail'))->where($queryBuilder->expr()->eq('u.sqUsuario', ':usuario'))->setParameter('usuario', $mapping->getUsuario())->setParameter('tipoEmail', $tipoEmailInstituicional, 'integer');
     $data['usuario'] = $queryBuilder->getQuery()->getSingleResult();
     $queryBuilder = $this->_em->createQueryBuilder();
     $arrPerfil = array();
     foreach ($perfis as $value) {
         $arrPerfil[] = $value->getSqPerfil();
     }
     $queryBuilder->select('p.noPerfil, s.sgSistema, s.noSistema')->from('app:UsuarioPerfil', 'up')->innerJoin('up.sqPerfil', 'p')->innerJoin('p.sqSistema', 's')->innerJoin('up.sqUnidadeOrgPessoa', 'u')->where($queryBuilder->expr()->eq('up.sqUsuario', ':usuario'))->setParameter('usuario', $mapping->getUsuario())->andWhere('u.sqUnidadeOrgPessoa = :sqUnidadeOrgPessoa')->setParameter('sqUnidadeOrgPessoa', $mapping->getUnidade())->andWhere($queryBuilder->expr()->in('p.sqPerfil', $arrPerfil));
     $data['perfis'] = $queryBuilder->getQuery()->getArrayResult();
     return $data;
 }