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