/** * @param \Core_Dto_Search $dto */ public function findByNuDigital($dto) { $sql = 'SELECT id, tipo, numero, origem, destino, interessado, assunto, assunto_complementar, cargo, assinatura, procedencia, digital, dt_cadastro, dt_prazo, ultimo_tramite, prioridade, autor FROM sgdoce.vw_documento_sgdoc_fisico WHERE digital = lpad(\'%1$d\', 7, \'0\');'; $strSql = sprintf($sql, $dto->getNuDigital()); $rsm = new \Doctrine\ORM\Query\ResultSetMapping($this->_em); $rsm->addScalarResult('id', 'id', 'integer'); $rsm->addScalarResult('tipo', 'tipo', 'string'); $rsm->addScalarResult('numero', 'numero', 'string'); $rsm->addScalarResult('origem', 'origem', 'string'); $rsm->addScalarResult('destino', 'destino', 'string'); $rsm->addScalarResult('interessado', 'interessado', 'string'); $rsm->addScalarResult('assunto', 'assunto', 'string'); $rsm->addScalarResult('assunto_complementar', 'assuntoComplementar', 'string'); $rsm->addScalarResult('cargo', 'cargo', 'string'); $rsm->addScalarResult('assinatura', 'assinatura', 'string'); $rsm->addScalarResult('procedencia', 'procedencia', 'string'); $rsm->addScalarResult('digital', 'digital', 'string'); $rsm->addScalarResult('dt_cadastro', 'dtCadastro', 'zenddate'); $rsm->addScalarResult('dt_prazo', 'dtPrazo', 'zenddate'); $rsm->addScalarResult('ultimo_tramite', 'ultimoTramite', 'string'); $rsm->addScalarResult('prioridade', 'prioridade', 'string'); $rsm->addScalarResult('autor', 'autor', 'string'); $nativeQuery = $this->_em->createNativeQuery($strSql, $rsm); return $nativeQuery->getArrayResult(); }
/** * * @param \Core_Dto_Search $dto * @return \Doctrine\DBAL\Query\QueryBuilder */ public function listGrid(\Core_Dto_Search $dto) { $rsm = new \Doctrine\ORM\Query\ResultSetMapping(); $rsm->addScalarResult('total_record', 'totalRecord', 'integer'); $rsm->addScalarResult('sq_artefato', 'sqArtefato', 'integer'); $rsm->addScalarResult('digital_numero', 'digitalNumero', 'string'); $rsm->addScalarResult('dt_arquivamento', 'dtArquivamento', 'zenddate'); $rsm->addScalarResult('no_pessoa_arquivamento', 'noPessoaArquivamento', 'string'); $rsm->addScalarResult('tx_assunto', 'txAssunto', 'string'); $rsm->addScalarResult('no_tipo_documento', 'noTipoDocumento', 'string'); $rsm->addScalarResult('no_pessoa_origem', 'noPessoaOrigem', 'string'); $caseNuDigital = "sgdoce.formata_numero_digital(a.nu_digital)"; $sql = "\n SELECT DISTINCT\n COUNT(a.sq_artefato) OVER() AS total_record\n ,a.sq_artefato\n ,COALESCE({$caseNuDigital}, formata_numero_artefato(a.nu_artefato,ap.co_ambito_processo)) AS digital_numero\n ,dt_arquivamento\n ,p.no_pessoa as no_pessoa_arquivamento\n ,ass.tx_assunto\n ,td.no_tipo_documento\n ,ps.no_pessoa AS no_pessoa_origem\n FROM artefato_arquivo_setorial aas\n JOIN vw_pessoa p ON aas.sq_pessoa_arquivamento = p.sq_pessoa\n JOIN artefato a USING(sq_artefato)\n JOIN sgdoce.tipo_artefato_assunto taa USING(sq_tipo_artefato_assunto)\n JOIN sgdoce.assunto ass ON ass.sq_assunto = taa.sq_assunto\n JOIN sgdoce.pessoa_artefato pa ON pa.sq_artefato = a.sq_artefato and pa.sq_pessoa_funcao = %1\$d\n JOIN sgdoce.pessoa_sgdoce ps ON ps.sq_pessoa_sgdoce = pa.sq_pessoa_sgdoce\n LEFT JOIN artefato_processo ap ON a.sq_artefato = ap.sq_artefato\n LEFT JOIN tipo_documento td USING(sq_tipo_documento)\n WHERE dt_desarquivamento IS NULL\n AND sq_unidade_arquivamento = %2\$d\n AND sq_tipo_artefato = %3\$d\n %4\$s\n ORDER BY dt_arquivamento DESC"; $optionalCondition = ''; $search = mb_strtolower($dto->getSearch(), 'UTF-8'); if ($search) { $queryBuild = $this->_em->createQueryBuilder(); if ($dto->getSqTipoArtefato() == \Core_Configuration::getSgdoceTipoArtefatoProcesso()) { $nuArtefato = $this->_em->createQueryBuilder()->expr()->lower("TRANSLATE(a.nu_artefato, './-', '')")->__toString(); $optionalCondition = " AND (" . $queryBuild->expr()->eq('a.nu_artefato', $queryBuild->expr()->literal($search))->__toString() . " OR " . $queryBuild->expr()->eq($nuArtefato, $queryBuild->expr()->literal(str_replace(array('.', '/', '-'), '', $search)))->__toString() . ")"; } else { $optionalCondition = " AND " . $queryBuild->expr()->eq('a.nu_digital', $search)->__toString(); } } $strSql = sprintf($sql, \Core_Configuration::getSgdocePessoaFuncaoOrigem(), \Core_Integration_Sica_User::getUserUnit(), $dto->getSqTipoArtefato(), $optionalCondition); return $this->_em->createNativeQuery($strSql, $rsm)->useResultCache(false); }
/** * Obtém modelo documento assunto * @param \Core_Dto_Search $dtoSearch * @return array */ public function getModeloDocAssunto(\Core_Dto_Search $dtoSearch) { $queryBuilder = $this->_em->createQueryBuilder(); $queryBuilder->select('pmd.noPadraoModeloDocumento', 'c.noCampo', 'c.noColunaTabela', 'gp.sqGrupoCampo', 'pmdc.inObrigatorio')->from('app:ModeloDocumentoCampo', 'mdc')->innerJoin('mdc.sqPadraoModeloDocumentoCam', 'pmdc')->innerJoin('pmdc.sqPadraoModeloDocumento', 'pmd')->innerJoin('pmdc.sqCampo', 'c')->innerJoin('c.sqGrupoCampo', 'gp')->innerJoin('mdc.sqModeloDocumento', 'md'); $queryBuilder->andWhere('md.sqTipoDocumento = :sqTipoDocumento')->setParameter('sqTipoDocumento', $dtoSearch->getSqTipoDocumento()); $queryBuilder->andWhere('md.inAtivo = :inAtivo')->setParameter('inAtivo', "TRUE"); return $queryBuilder->getQuery()->execute(); }
/** * 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 isTramiteExterno(\Core_Dto_Search $dto) { $sql = "SELECT (uo.sq_pessoa is null) AS is_tramite_externo\n FROM sgdoce.vw_ultimo_tramite_artefato uta\n JOIN corporativo.vw_pessoa pes\n ON pes.sq_pessoa = uta.sq_pessoa_destino\n LEFT JOIN corporativo.vw_unidade_org uo\n ON pes.sq_pessoa = uo.sq_pessoa\n WHERE sq_artefato = :sqArtefato"; $rsm = new \Doctrine\ORM\Query\ResultSetMapping(); $rsm->addScalarResult('is_tramite_externo', 'isTramiteExterno', 'boolean'); $query = $this->_em->createNativeQuery($sql, $rsm); $query->setParameter('sqArtefato', $dto->getSqArtefato()); return $query->getSingleScalarResult(); }
public function getUserPrintedDigital(\Core_Dto_Search $search) { $result = array('user' => false, 'date' => null); $eLoteEtiqueta = $this->_getRepository()->find($search->getSqLoteEtiqueta()); if ($eLoteEtiqueta->getSqUsuario()) { $result['user'] = $eLoteEtiqueta->getSqUsuario()->getSqPessoa()->getNoPessoa(); $result['date'] = $eLoteEtiqueta->getDtImpressao()->get('dd/MM/yyyy'); } return $result; }
/** * Obtém endereço de um usuário * @param \Core_Dto_Search $dto * @return array */ public function buscarEnderecoPorIdUsuario(\Core_Dto_Search $dto) { $query = $this->_em->createQueryBuilder(); $query->select('e')->from($this->_enName, 'e')->where('e.sqPessoa = :idUsuario')->setParameter('idUsuario', $dto->getSqUsuario()); $result = $query->getQuery()->getResult(); if (!$result) { $result[] = new \Sgdoce\Model\Entity\VwEndereco(); } return $result[0]; }
/** * método que retorna dados para da assinatura pela chave sqArtefato * @param \Core_Dto_Abstract $dto * @return \Doctrine\ORM\QueryBuilder */ public function findAssinatura(\Core_Dto_Search $dto) { $query = mb_strtolower($dto->getQuery(), 'UTF-8'); $queryBuilder = $this->getEntityManager()->createQueryBuilder()->select(' a.sqAssinatura, a.dtAssinatura, a.txMotivacao, p.noPessoa ')->from('app:Assinatura', 'a')->leftjoin('a.sqPessoa', 'p')->andWhere('a.sqArtefato = :sqArtefato')->setParameter('sqArtefato', $dto->getSqArtefato()); return $res = $queryBuilder->getQuery()->getOneOrNullResult(); }
/** * Obtém os dados da pessoa * @return array */ public function searchFuncionarioIcmbio(\Core_Dto_Search $dto) { $queryBuilder = $this->_em->createQueryBuilder(); $queryBuilder->select('p.sqTipoPessoa')->from('app:VwPessoa', 'p')->where($queryBuilder->expr()->lower('p.noPessoa') . " = '" . strtolower($dto->getNoPessoa()) . "'"); $res = $queryBuilder->getQuery()->execute(); if (count($res)) { return $res[0]; } else { return $res; } }
/** * Método que retorna os registros do grau de acesso do artefato que estiveram ativos * @param \Core_Dto_Search $dtoSearch * @return array */ public function getGrauAcessoArtefato(\Core_Dto_Search $dtoSearch) { $queryBuilder = $this->_em->createQueryBuilder()->select('gaa')->from('app:GrauAcessoArtefato', 'gaa')->andWhere("gaa.sqArtefato = {$dtoSearch->getSqArtefato()}")->andWhere('gaa.stAtivo = TRUE'); $result = $queryBuilder->getQuery()->execute(); if (count($result) > 0) { $result = $result[0]; } else { $result = NULL; } return $result; }
/** * @param \Core_Dto_Search $dto * Perfil do Usuário ex. SGI = \Core_Configuration::getSicaeTipoPerfilAdministrador() * @return QueryBuilder */ public function listUsuarioPorPerfil($dto) { $sqPerfil = null; $sql = "SELECT DISTINCT\n u.sq_usuario,\n u.sq_pessoa,\n u.st_ativo,\n pe.no_pessoa,\n p.no_perfil,\n p.in_perfil_externo\n FROM sicae.vw_usuario u\n JOIN sicae.vw_usuario_perfil up USING(sq_usuario)\n JOIN sicae.vw_perfil p USING(sq_perfil)\n JOIN corporativo.vw_pessoa pe USING(sq_pessoa)\n WHERE u.st_ativo = TRUE\n AND p.sq_perfil = :sqPerfil\n ORDER BY pe.no_pessoa"; $rsm = new \Doctrine\ORM\Query\ResultSetMapping(); $rsm->addScalarResult('sq_usuario', 'sqUsuario'); $rsm->addScalarResult('sq_pessoa', 'sqPessoa'); $rsm->addScalarResult('st_ativo', 'stAtivo'); $rsm->addScalarResult('no_pessoa', 'noPessoa'); $rsm->addScalarResult('no_perfil', 'noPerfil'); $rsm->addScalarResult('in_perfil_externo', 'inPerfilExterno'); $nativeQuery = $this->_em->createNativeQuery($sql, $rsm); $nativeQuery->setParameter('sqPerfil', $dto->getSqPerfil()); return $nativeQuery->useResultCache(TRUE, NULL, __METHOD__)->getArrayResult(); }
/** * * @param \Core_Dto_Search $dto * @return array */ public function listGrid(\Core_Dto_Search $dto) { $rsm = new \Doctrine\ORM\Query\ResultSetMapping($this->_em); $rsm->addScalarResult('sq_caixa', 'sqCaixa', 'integer'); $rsm->addScalarResult('sq_artefato', 'sqArtefato', 'integer'); $rsm->addScalarResult('sq_tipo_artefato', 'sqTipoArtefato', 'integer'); $rsm->addScalarResult('nu_artefato', 'nuArtefato', 'string'); $rsm->addScalarResult('no_tipo_documento', 'noTipoDocumento', 'string'); $rsm->addScalarResult('tx_classificacao', 'txClassificacao', 'string'); $rsm->addScalarResult('nu_classificacao', 'nuClassificacao', 'string'); $rsm->addScalarResult('no_pessoa_origem', 'noPessoaOrigem', 'string'); $rsm->addScalarResult('tx_assunto', 'txAssunto', 'string'); $strQuery = sprintf("SELECT ca.sq_caixa\n ,art.sq_artefato\n ,CASE WHEN (taa.sq_tipo_artefato = %d) THEN art.nu_artefato ELSE art.nu_digital::TEXT END AS nu_artefato\n ,td.no_tipo_documento\n ,taa.sq_tipo_artefato\n ,cl.nu_classificacao || ' - ' ||cl.tx_classificacao as tx_classificacao\n\n ,ps.no_pessoa AS no_pessoa_origem\n ,ass.tx_assunto\n FROM caixa_artefato ca\n INNER JOIN caixa cx using(sq_caixa)\n INNER JOIN artefato art using(sq_artefato)\n INNER JOIN tipo_documento td using(sq_tipo_documento)\n INNER JOIN tipo_artefato_assunto taa using(sq_tipo_artefato_assunto)\n INNER JOIN assunto ass using(sq_assunto)\n INNER JOIN artefato_classificacao ac using(sq_artefato)\n INNER JOIN classificacao cl ON ac.sq_classificacao = cl.sq_classificacao\n INNER JOIN pessoa_artefato pa using(sq_artefato)\n INNER JOIN pessoa_sgdoce ps using(sq_pessoa_sgdoce)\n WHERE ca.sq_caixa = %d\n AND pa.sq_pessoa_funcao = %d", \Core_Configuration::getSgdoceTipoArtefatoProcesso(), $dto->getSqCaixa(), \Core_Configuration::getSgdocePessoaFuncaoOrigem()); $nativeQuery = $this->_em->createNativeQuery($strQuery, $rsm); return $nativeQuery; }
/** * método para pesquisa de unidades organizacinais para combo * @param array $params * @return array $out */ public function sistemaAutoComplete(\Core_Dto_Search $dto, $entidade) { $queryBuilder = $this->_em->createQueryBuilder(); $query = $queryBuilder->select('c')->from($entidade, 'c'); if (!is_null($dto->hasQuery())) { $search = mb_strtolower($dto->getQuery(), 'UTF-8'); $field = $queryBuilder->expr()->lower($queryBuilder->expr()->trim('c.nome')); $query->andWhere($queryBuilder->expr()->like('clear_accentuation(' . $field . ')', $queryBuilder->expr()->literal($this->removeAccent('%' . $search . '%')))); } $query->setMaxResults(10); $res = $query->getQuery()->getArrayResult(); $out = array(); foreach ($res as $item) { $out[$item['codigo']] = $item['nome']; } return $out; }
public function listGridHistoricoDespacho(\Core_Dto_Search $dto) { $rsm = new \Doctrine\ORM\Query\ResultSetMapping(); $rsm->addScalarResult('total_record', 'totalRecord', 'integer'); $rsm->addScalarResult('sq_despacho_interlocutorio', 'sqDespachoInterlocutorio', 'integer'); $rsm->addScalarResult('sq_artefato', 'sqArtefato', 'integer'); $rsm->addScalarResult('dt_despacho', 'dtDespacho', 'zenddate'); $rsm->addScalarResult('tx_despacho', 'txDespacho', 'string'); $rsm->addScalarResult('no_assinatura', 'noAssinatura', 'string'); $rsm->addScalarResult('no_origem', 'noOrigem', 'string'); $rsm->addScalarResult('no_encaminhado', 'noEncaminhado', 'string'); $rsm->addScalarResult('sq_pessoa_operacao', 'sqPessoaOperacao', 'integer'); $sql = "SELECT count(sq_despacho_interlocutorio) over() as total_record,\n di.sq_despacho_interlocutorio,\n di.sq_artefato,\n di.dt_despacho,\n di.tx_despacho,\n pes_ass.no_pessoa as no_assinatura,\n uo_orig.sg_unidade_org AS no_origem,\n uo_enc.sg_unidade_org AS no_encaminhado,\n pes_oper.sq_pessoa AS sq_pessoa_operacao\n FROM despacho_interlocutorio di\n JOIN vw_pessoa pes_ass ON di.sq_pessoa_assinatura = pes_ass.sq_pessoa\n JOIN vw_unidade_org uo_orig ON di.sq_unidade_assinatura = uo_orig.sq_pessoa\n JOIN vw_unidade_org uo_enc ON di.sq_unidade_destino = uo_enc.sq_pessoa\n JOIN vw_pessoa pes_oper ON di.sq_pessoa_operacao = pes_oper.sq_pessoa\n WHERE di.sq_artefato = :sqArtefato\n ORDER BY di.sq_despacho_interlocutorio DESC"; $query = $this->_em->createNativeQuery($sql, $rsm); $query->setParameter('sqArtefato', $dto->getSqArtefato()); return $query; }
public function getNextBoxNumber(\Core_Dto_Search $dto) { $rsm = new \Doctrine\ORM\Query\ResultSetMapping($this->_em); $rsm->addScalarResult('nu_caixa', 'nuCaixa', 'string'); $sql = sprintf("\n SELECT lpad((COALESCE(max(nu_caixa::INTEGER),0) + 1)::TEXT,7,'0') AS nu_caixa\n FROM caixa\n WHERE sq_unidade_org = %d", $dto->getSqUnidadeOrg()); $nativeQuery = $this->_em->createNativeQuery($sql, $rsm); $result = $nativeQuery->getSingleResult(); return $result['nuCaixa']; }
/** * Metódo que realiza o save do Artefato */ public function saveArtefato(\Core_Dto_Search $dtoSearch) { $entityArtefato = $this->_newEntity('app:Artefato'); $entityArtefato->setDtPrazo(NULL); $date = new \Zend_Date(); $entityArtefato->setDtArtefato($date); $entityTipoArtefatoAssunto = $this->_getRepository('app:TipoArtefatoAssunto')->findBy(array('sqAssunto' => $dtoSearch->getSqAssunto(), 'sqTipoArtefato' => 5)); $entityTipoDoc = $this->_getRepository('app:TipoDocumento')->find($dtoSearch->getSqTipoDocumento()); $entityArtefato->setSqTipoArtefatoAssunto($entityTipoArtefatoAssunto[0]); $entityArtefato->setSqTipoDocumento($entityTipoDoc); $this->getEntityManager()->persist($entityArtefato); $this->getEntityManager()->flush($entityArtefato); $idModelo = $this->hasModeloDocumentoCadastrado($dtoSearch, TRUE); $entityModelo = $this->_getRepository('app:ModeloDocumento')->find($idModelo); $entityArtefatoMinuta = $this->_newEntity('app:ArtefatoMinuta'); $entityArtefatoMinuta->setSqModeloDocumento($entityModelo); $entityArtefatoMinuta->setSqArtefato($entityArtefato); $this->getEntityManager()->persist($entityArtefatoMinuta); $this->getEntityManager()->flush($entityArtefatoMinuta); return $entityArtefato; }
/** * LISTA DE TIPO DE ASSUNTO DE SOLICITAÇÃO. * * @param \Core_Dto_Search $dto * @param string $sort * @param string $order * @return array */ public function listTipoAssuntoSolicitacao($dto, $sort = 'a.noTipoAssuntoSolicitacao', $order = 'ASC') { $queryBuilder = $this->_em->createQueryBuilder()->select('a.sqTipoAssuntoSolicitacao, a.noTipoAssuntoSolicitacao, a.inTipoParaArtefato')->from('app:TipoAssuntoSolicitacao', 'a')->orderBy($sort, $order); if ($dto->getQuery() != "") { $search = mb_strtolower($dto->getQuery(), 'UTF-8'); $noTipoAssuntoSolicitacao = $queryBuilder->expr()->lower($queryBuilder->expr()->trim('a.noTipoAssuntoSolicitacao')); $queryBuilder->where($queryBuilder->expr()->like('clear_accentuation(' . $noTipoAssuntoSolicitacao . ')', $queryBuilder->expr()->literal($this->removeAccent('%' . $search . '%')))); } $inTipoParaArtefato = $dto->getInTipoParaArtefato(); if (!is_null($inTipoParaArtefato)) { $paraArtefato = $dto->getInTipoParaArtefato() > 0 ? '1' : '0'; $queryBuilder->andWhere("a.inTipoParaArtefato = :inTipoParaArtefato")->setParameter(":inTipoParaArtefato", $paraArtefato); if ($paraArtefato) { $arrAssuntoProcesso = array(\Core_Configuration::getSgdoceTipoAssuntoSolicitacaoComentario(), \Core_Configuration::getSgdoceTipoAssuntoSolicitacaoDespacho(), \Core_Configuration::getSgdoceTipoAssuntoSolicitacaoAlterarCadastro(), \Core_Configuration::getSgdoceTipoAssuntoSolicitacaoVolumeDeProcesso(), \Core_Configuration::getSgdoceTipoAssuntoSolicitacaoDesanexaProcesso(), \Core_Configuration::getSgdoceTipoAssuntoSolicitacaoDesmembraPecas(), \Core_Configuration::getSgdoceTipoAssuntoSolicitacaoRemoverPeca()); $arrAssuntoDocumento = array(\Core_Configuration::getSgdoceTipoAssuntoSolicitacaoComentario(), \Core_Configuration::getSgdoceTipoAssuntoSolicitacaoAlterarCadastro(), \Core_Configuration::getSgdoceTipoAssuntoSolicitacaoDespacho(), \Core_Configuration::getSgdoceTipoAssuntoSolicitacaoDesanexaDigital(), \Core_Configuration::getSgdoceTipoAssuntoSolicitacaoExcluirImagem()); $arrAssunto = $inTipoParaArtefato == \Core_Configuration::getSgdoceTipoArtefatoProcesso() ? $arrAssuntoProcesso : $arrAssuntoDocumento; $queryBuilder->andWhere("a.sqTipoAssuntoSolicitacao IN(:sqTipoAssuntoSolicitacaoiIn)")->setParameter(":sqTipoAssuntoSolicitacaoiIn", $arrAssunto); } } $queryBuilder->andWhere("a.stRegistroAtivo = :stRegistroAtivo")->setParameter(":stRegistroAtivo", TRUE); return $queryBuilder->getQuery()->useResultCache(TRUE, NULL, __METHOD__)->execute(); }
/** * Realiza busca para grid * * @param \Core_Dto_Search $search * @return \Doctrine\ORM\QueryBuilder */ public function listGrid($search) { try { $rsm = new \Doctrine\ORM\Query\ResultSetMapping(); $rsm->addScalarResult('total_record', 'totalRecord', 'integer'); $rsm->addScalarResult('sq_comentario_artefato', 'sqComentarioArtefato', 'integer'); $rsm->addScalarResult('sq_pessoa', 'sqPessoa', 'integer'); $rsm->addScalarResult('sq_artefato', 'sqArtefato', 'integer'); $rsm->addScalarResult('sq_unidade_org', 'sqUnidadeOrg', 'integer'); $rsm->addScalarResult('no_pessoa', 'noPessoa', 'string'); $rsm->addScalarResult('tx_comentario', 'txComentario', 'string'); $rsm->addScalarResult('no_unidade_org', 'noUnidadeOrg', 'string'); $rsm->addScalarResult('dt_comentario', 'dtComentario', 'zenddate'); $rsm->addScalarResult('dt_tramite', 'dtTramite', 'zenddate'); $sql = "SELECT COUNT(sq_comentario_artefato) OVER() as total_record,\n ca.sq_comentario_artefato,\n pes.sq_pessoa,\n pes.no_pessoa,\n art.sq_artefato,\n ca.tx_comentario,\n ca.dt_comentario,\n uo.sq_pessoa as sq_unidade_org,\n uo.no_pessoa as no_unidade_org,\n uta.dt_tramite\n FROM comentario_artefato ca\n JOIN vw_pessoa pes\n ON ca.sq_pessoa = pes.sq_pessoa\n JOIN artefato art\n ON ca.sq_artefato = art.sq_artefato\n JOIN vw_unidade_org uo\n ON ca.sq_unidade = uo.sq_pessoa\n JOIN tramite_artefato uta\n ON uta.sq_artefato = ca.sq_artefato AND uta.st_ultimo_tramite\n WHERE ca.sq_artefato = :sqArtefato\n ORDER BY ca.dt_comentario DESC"; $query = $this->_em->createNativeQuery($sql, $rsm); $query->setParameter('sqArtefato', $search->getSqArtefato()); return $query; } catch (\Exception $e) { throw $e; } }
public function saveDevolucao(\Core_Dto_Search $dto) { try { $dtOperacao = \Zend_Date::now(); $sqTipoHistorico = \Core_Configuration::getSgdoceTipoHistoricoArquivoDevolvido(); foreach ($dto->getSqArtefato()->getApi() as $method) { $entityArtefato = $this->_getRepository('app:Artefato')->find($dto->getSqArtefato()->{$method}()); $this->_checkCanReturn($entityArtefato); $entityCaixaArtefato = $this->_getRepository('app:CaixaArtefato')->findOneBy(array('sqArtefato' => $entityArtefato->getSqArtefato())); $this->getServiceLocator()->getService('CaixaArtefato')->insertHistorico($entityCaixaArtefato, $dtOperacao, $sqTipoHistorico); } $this->getEntityManager()->flush(); } catch (\Exception $e) { throw $e; } }
public function addArtefatoVinculo(\Core_Dto_Search $dto) { $entity = NULL; $artefato = $this->_getRepository('app:Artefato')->findBy(array('nuDigital' => $dto->getNuDigital())); if ($artefato) { $sqArtefatoPai = $this->_getRepository('app:Artefato')->find($dto->getSqArtefato()); $sqArtefatoFilho = $this->_getRepository()->find($artefato[0]->getSqArtefato()); $sqTipoVinculo = $this->_getRepository('app:TipoVinculoArtefato')->find($dto->getTipoVinculo()); $entity = new \Sgdoce\Model\Entity\ArtefatoVinculo(); $entity->setSqArtefatoPai($sqArtefatoPai); $entity->setSqArtefatoFilho($sqArtefatoFilho); $entity->setSqTipoVinculoArtefato($sqTipoVinculo); $entity->setDtVinculo(\Zend_Date::now()); if ($dto->getInOriginal()) { $entity->setInOriginal($dto->getInOriginal()); } else { $entity->setInOriginal(FALSE); } $this->getEntityManager()->persist($entity); $this->getEntityManager()->flush($entity); } return $entity; }
/** * Listagem de artefatos de migração inconsistentes. * * @param \Core_Dto_Abstract $dto * @return \Doctrine\ORM\QueryBuilder */ public function listGridArtefatosInconsistentes(\Core_Dto_Search $dto) { $rsm = new \Doctrine\ORM\Query\ResultSetMapping(); $rsm->addScalarResult('total_record', 'totalRecord', 'integer'); $rsm->addScalarResult('sq_artefato', 'sqArtefato', 'integer'); $rsm->addScalarResult('nu_digital', 'nuDigital', 'string'); $rsm->addScalarResult('nu_artefato', 'nuArtefato', 'string'); $rsm->addScalarResult('dt_cadastro', 'dtCadastro', 'zenddate'); $not = "NOT"; $proc = "LEFT"; if ($dto->sqTipoArtefato == \Core_Configuration::getSgdoceTipoArtefatoProcesso()) { $not = ""; $proc = ""; } $sql = 'SELECT COUNT(sq_artefato) OVER() AS total_record, * FROM ( SELECT a.sq_artefato, LPAD(CAST(a.nu_digital AS VARCHAR), 7, \'0\') AS nu_digital, a.dt_cadastro, sgdoce.formata_numero_artefato(a.nu_artefato, ap.co_ambito_processo ) as nu_artefato FROM sgdoce.artefato a LEFT JOIN sgdoce.tramite_artefato ta using(sq_artefato) ' . $proc . ' JOIN sgdoce.artefato_processo ap ON a.sq_artefato = ap.sq_artefato WHERE a.st_migracao AND a.nu_digital IS ' . $not . ' NULL AND a.ar_inconsistencia IS NOT NULL AND FALSE = ANY(a.ar_inconsistencia) AND ta.st_ultimo_tramite AND ta.sq_pessoa_destino IS NULL %1$s ) AS totalizador ORDER BY nu_digital, nu_artefato NULLS LAST'; $optionalCondition = ''; $search = mb_strtolower($dto->getSearch(), 'UTF-8'); if ($search) { $queryBuild = $this->_em->createQueryBuilder(); if ($dto->sqTipoArtefato == \Core_Configuration::getSgdoceTipoArtefatoProcesso()) { $nuArtefato = $this->_em->createQueryBuilder()->expr()->lower("TRANSLATE(a.nu_artefato, './-', '')")->__toString(); $optionalCondition = " AND (" . $queryBuild->expr()->eq('a.nu_artefato', $queryBuild->expr()->literal($search))->__toString() . " OR " . $queryBuild->expr()->eq($nuArtefato, $queryBuild->expr()->literal(str_replace(array('.', '/', '-'), '', $search)))->__toString() . ")"; } else { $optionalCondition = " AND " . $queryBuild->expr()->eq('a.nu_digital', $search)->__toString(); } } $query = $this->_em->createNativeQuery(sprintf($sql, $optionalCondition), $rsm); $query->setParameter('sqUnidadeOrg', \Core_Integration_Sica_User::getUserUnit())->useResultCache(false); return $query; }
public function deleteByCriteria(\Core_Dto_Search $dto) { $qb = $this->_em->createQueryBuilder(); return $qb->delete($this->_entityName, 't')->where($qb->expr()->eq('t.sqPessoaSgdoce', $dto->getSqPessoaSgdoce()))->andWhere($qb->expr()->eq('t.sqPessoaUnidadeOrg', $dto->getSqPessoaUnidadeOrg()))->getQuery()->execute(); }
/** * 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 getMaxNuOrderByParent(\Core_Dto_Search $dto) { $sql = "SELECT MAX(nu_ordem) as nu_ordem FROM artefato_vinculo WHERE sq_artefato_pai = :sqArtefatoPai"; $rsm = new \Doctrine\ORM\Query\ResultSetMapping($this->_em); $rsm->addScalarResult('nu_ordem', 'nuOrdem', 'integer'); $nq = $this->_em->createNativeQuery($sql, $rsm)->setParameter('sqArtefatoPai', $dto->getSqArtefatoPai()); return $nq->useResultCache(false)->getSingleScalarResult(); }
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()); }
/** * @param \Core_Dto_Search $dto * @return array */ public function comboArtefato($dto) { $sqTipoArtefato = $dto->getSqTipoArtefato(); $field = "nuDigital"; if ($sqTipoArtefato == \Core_Configuration::getSgdoceTipoArtefatoProcesso()) { $field = "nuArtefato"; } $list = $this->_getRepository()->searchArtefato($dto); if (!isset($list['__NO_CLICK__'])) { $out = array(); foreach ($list as $item) { $out[$item['sqArtefato']] = "{$item[$field]}"; } return $out; } return $list; }
/** * Deleta motivação * @param \Core_Dto_Search $dto * @return boolean */ public function deleteMotivacao($dto) { $queryBuilder = $this->_em->createQueryBuilder()->delete('app:Motivacao', 'm')->andWhere('m.sqArtefato = :sqArtefato')->setParameter('sqArtefato', $dto->getSqArtefato()->getSqArtefato())->andWhere('m.sqPessoaUnidadeOrg = :sqPessoaUnidadeOrg')->setParameter('sqPessoaUnidadeOrg', $dto->getSqPessoaUnidadeOrg()->getSqPessoaUnidadeOrg()); $out = $queryBuilder->getQuery()->execute(); return $out; }
/** * método que retorna dados para grid de interessados nos Artefato * @param \Core_Dto_Abstract $dto * @return \Doctrine\ORM\QueryBuilder */ public function listGridImagem(\Core_Dto_Search $dto) { $queryBuilder = $this->_em->createQueryBuilder()->select('aa')->from('app:AnexoArtefato', 'aa')->andWhere('aa.sqArtefato = :sqArtefato')->setParameter('sqArtefato', $dto->getSqArtefato())->orderBy('aa.nuPagina'); return $queryBuilder; }
/** * * @param \Core_Dto_Abstract $dto * @return array */ public function listGridMaterial(\Core_Dto_Search $dto) { $queryBuilder = $this->_em->createQueryBuilder(); $queryBuilder->select('ta.noTipoAnexo, af.nuDigital, aav.noTituloAnexo, aav.sqAnexoArtefatoVinculo')->from('app:AnexoArtefatoVinculo', 'aav')->innerJoin('aav.sqArtefatoVinculo', 'av')->innerJoin('aav.sqTipoAnexo', 'ta')->innerJoin('av.sqArtefatoPai', 'ap')->innerJoin('av.sqArtefatoFilho', 'af')->andWhere('ap.sqArtefato = :sqArtefato')->andWhere('av.sqTipoVinculoArtefato = :sqTipoVinculoArtefato')->setParameter('sqArtefato', $dto->getSqArtefato())->setParameter('sqTipoVinculoArtefato', \Core_Configuration::getSgdoceTipoVinculoArtefatoApoio()); return $queryBuilder; }
/** * Método que obtém os dados para grid * @param \Core_Dto_Search $dtoSearch * @return array */ public function getResultList(\Core_Dto_Search $dtoSearch) { $dtoSearch->sqArtefato = $this->_getParam('sqArtefato'); $dtoSearch->limitComment = self::T_ARTEFATO_DESPACHO_INTERLOCUTORIO_LIMIT_COMMENT_GRID; $dtoSearch->hasPermission = $this->_checkPermissaoArtefato($dtoSearch->getSqArtefato()); $dtoSearch->ultimoTramite = $this->getService('TramiteArtefato')->getLastTramite($dtoSearch->getSqArtefato()); $dtoSearch->demandaAberta = $this->getService('Solicitacao')->getSolicitacaoAberta($dtoSearch); $res = $this->getService()->getGrid($dtoSearch); return $res; }