ProcessoExpedidoRN.php
4.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<?php
require_once dirname(__FILE__) . '/../../../SEI.php';
class ProcessoExpedidoRN extends InfraRN {
public function __construct() {
parent::__construct();
}
protected function inicializarObjInfraIBanco() {
return BancoSEI::getInstance();
}
public function listarProcessoExpedido(ProtocoloDTO &$objProtocoloDTO) {
$numLimit = $objProtocoloDTO->getNumMaxRegistrosRetorno();
$numOffset = $objProtocoloDTO->getNumPaginaAtual() * $objProtocoloDTO->getNumMaxRegistrosRetorno();
$sql = "SELECT
p.id_protocolo,
p.protocolo_formatado,
a.id_unidade id_unidade,
atd.valor unidade_destino,
us.id_usuario id_usuario,
us.nome nome_usuario,
a.dth_abertura
FROM protocolo p
INNER JOIN atividade a ON a.id_protocolo = p.id_protocolo
INNER JOIN atributo_andamento atd ON a.id_atividade = atd.id_atividade AND atd.nome = 'UNIDADE_DESTINO'
INNER JOIN md_pen_processo_eletronico pe ON pe.id_procedimento = p.id_protocolo
INNER JOIN md_pen_tramite ptra ON ptra.numero_registro = pe.numero_registro
INNER JOIN usuario us ON ptra.id_usuario = us.id_usuario
WHERE
p.sta_estado = " . $objProtocoloDTO->getStrStaEstado() . "
AND
a.id_tarefa = ". ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_EXTERNO) ."
AND
ptra.dth_registro = (SELECT MAX(pt.dth_registro) dth_registro FROM md_pen_tramite pt WHERE pt.numero_registro = pe.numero_registro)
AND
NOT EXISTS (
SELECT at2.* FROM atividade at2
WHERE at2.id_protocolo = p.id_protocolo
AND at2.id_tarefa = ". ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO) ."
AND at2.dth_abertura > a.dth_abertura )
GROUP BY
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 ";
$sqlCount = "SELECT count(*) total
FROM protocolo p
INNER JOIN atividade a ON a.id_protocolo = p.id_protocolo
INNER JOIN atributo_andamento atd ON a.id_atividade = atd.id_atividade AND atd.nome = 'UNIDADE_DESTINO'
INNER JOIN md_pen_processo_eletronico pe ON pe.id_procedimento = p.id_protocolo
INNER JOIN md_pen_tramite ptra ON ptra.numero_registro = pe.numero_registro
INNER JOIN usuario us ON ptra.id_usuario = us.id_usuario
WHERE
p.sta_estado = " . $objProtocoloDTO->getStrStaEstado() . "
AND
a.id_tarefa = ". ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_EXTERNO) ."
AND
ptra.dth_registro = (SELECT MAX(pt.dth_registro) dth_registro FROM md_pen_tramite pt WHERE pt.numero_registro = pe.numero_registro)
AND
NOT EXISTS (
SELECT at2.* FROM atividade at2
WHERE at2.id_protocolo = p.id_protocolo
AND at2.id_tarefa = ". ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO) ."
AND at2.dth_abertura > a.dth_abertura ) ";
$objPaginacao = $this->getObjInfraIBanco()->paginarSql($sql, $numOffset, $numLimit);
$total = $objPaginacao['totalRegistros'];
$arrProcessosExpedidos = array();
$objProtocoloDTO->setNumTotalRegistros($total);
$objProtocoloDTO->setNumRegistrosPaginaAtual(count($pag));
foreach ($objPaginacao['registrosPagina'] as $res) {
$data = BancoSEI::getInstance()->formatarLeituraDth($res['dth_abertura']);
$objProcessoExpedidoDTO = new ProcessoExpedidoDTO();
$objProcessoExpedidoDTO->setDblIdProtocolo($res['id_protocolo']);
$objProcessoExpedidoDTO->setStrProtocoloFormatado($res['protocolo_formatado']);
$objProcessoExpedidoDTO->setStrNomeUsuario($res['nome_usuario']);
$objProcessoExpedidoDTO->setDthExpedido($data);
$objProcessoExpedidoDTO->setStrDestino($res['unidade_destino']);
$arrProcessosExpedidos[] = $objProcessoExpedidoDTO;
}
return $arrProcessosExpedidos;
}
}