Commit 62add16dc4c907cb535b419d40daa10aeb36d17a
1 parent
29a37c57
Exists in
master
and in
3 other branches
Alinhamento de compatibilidade de scripts entre Oracle e SQLServer
Showing
1 changed file
with
12 additions
and
5 deletions
Show diff stats
rn/ProcessoExpedidoRN.php
| ... | ... | @@ -15,9 +15,11 @@ class ProcessoExpedidoRN extends InfraRN { |
| 15 | 15 | public function listarProcessoExpedido(ProtocoloDTO &$objProtocoloDTO) { |
| 16 | 16 | |
| 17 | 17 | $bolSqlServer = $this->getObjInfraIBanco() instanceof InfraSqlServer; |
| 18 | + $bolOracle = $this->getObjInfraIBanco() instanceof InfraOracle; | |
| 18 | 19 | $numLimit = $objProtocoloDTO->getNumMaxRegistrosRetorno(); |
| 19 | 20 | $numOffset = $objProtocoloDTO->getNumPaginaAtual() * $objProtocoloDTO->getNumMaxRegistrosRetorno(); |
| 20 | 21 | $strInstrucaoPaginacao = (!$bolSqlServer) ? "LIMIT ".$numOffset.",".$numLimit : "OFFSET $numOffset ROWS FETCH NEXT $numLimit ROWS ONLY"; |
| 22 | + $strInstrucaoPaginacao = ($bolOracle) ? "" : $strInstrucaoPaginacao; | |
| 21 | 23 | |
| 22 | 24 | $sql = "SELECT |
| 23 | 25 | p.id_protocolo, |
| ... | ... | @@ -41,14 +43,20 @@ class ProcessoExpedidoRN extends InfraRN { |
| 41 | 43 | ptra.dth_registro = (SELECT MAX(pt.dth_registro) dth_registro FROM md_pen_tramite pt WHERE pt.numero_registro = pe.numero_registro) |
| 42 | 44 | AND |
| 43 | 45 | NOT EXISTS ( |
| 44 | - SELECT at2.* FROM atividade as at2 | |
| 46 | + SELECT at2.* FROM atividade at2 | |
| 45 | 47 | WHERE at2.id_protocolo = p.id_protocolo |
| 46 | 48 | AND at2.id_tarefa = ". ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO) ." |
| 47 | 49 | AND at2.dth_abertura > a.dth_abertura ) |
| 48 | 50 | GROUP BY |
| 49 | 51 | p.id_protocolo, p.protocolo_formatado, a.id_unidade , atd.valor , us.id_usuario, us.nome, a.dth_abertura ORDER BY a.dth_abertura DESC ".$strInstrucaoPaginacao; |
| 50 | 52 | |
| 51 | - $sqlCount = "SELECT | |
| 53 | + | |
| 54 | + if ($this->getObjInfraIBanco() instanceof InfraOracle){ | |
| 55 | + $qtd = $numLimit + $numLimit; | |
| 56 | + $sql = "select a.* from ($sql) a where rownum >= $numOffset and rownum <= $qtd"; | |
| 57 | + } | |
| 58 | + | |
| 59 | + $sqlCount = "SELECT | |
| 52 | 60 | count(*) total |
| 53 | 61 | FROM protocolo p |
| 54 | 62 | INNER JOIN atividade a ON a.id_protocolo = p.id_protocolo |
| ... | ... | @@ -64,13 +72,12 @@ class ProcessoExpedidoRN extends InfraRN { |
| 64 | 72 | ptra.dth_registro = (SELECT MAX(pt.dth_registro) dth_registro FROM md_pen_tramite pt WHERE pt.numero_registro = pe.numero_registro) |
| 65 | 73 | AND |
| 66 | 74 | NOT EXISTS ( |
| 67 | - SELECT at2.* FROM atividade as at2 | |
| 75 | + SELECT at2.* FROM atividade at2 | |
| 68 | 76 | WHERE at2.id_protocolo = p.id_protocolo |
| 69 | 77 | AND at2.id_tarefa = ". ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO) ." |
| 70 | 78 | AND at2.dth_abertura > a.dth_abertura ) "; |
| 71 | 79 | |
| 72 | - | |
| 73 | - | |
| 80 | +//die($sql); | |
| 74 | 81 | $pag = $this->getObjInfraIBanco()->consultarSql($sql); |
| 75 | 82 | $count = $this->getObjInfraIBanco()->consultarSql($sqlCount); |
| 76 | 83 | $total = $count ? $count[0]['total'] : 0; | ... | ... |