Commit c365673ddac971a6562d6b9808020a1895af4043

Authored by Nei Jobson da Costa Carneiro
1 parent 8198c612

Atualização geral da versão BETA. Ainda faltam poucos erros para liberação de ve…

…rsão estável aos órgãos.
sei/scripts/sei_atualizar_versao_modulo_peticionamento.php
... ... @@ -7,7 +7,7 @@
7 7  
8 8 SessaoSEI::getInstance(false);
9 9  
10   - $objVersaoRN = new MdPetAtualizadorRN();
  10 + $objVersaoRN = new MdPetAtualizadorSeiRN();
11 11 $objVersaoRN->atualizarVersao();
12 12 exit;
13 13  
... ...
sei/web/modulos/peticionamento/dto/MdPetCriterioDTO.php
... ... @@ -46,6 +46,9 @@ class MdPetCriterioDTO extends InfraDTO {
46 46  
47 47  
48 48 $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'NomeProcesso', 'tipo_proc.nome', 'tipo_procedimento tipo_proc');
  49 +
  50 + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'TipoProcessoSinAtivo', 'tipo_proc.sin_ativo', 'tipo_procedimento tipo_proc');
  51 +
49 52 $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'NomeHipoteseLegal', 'hl.nome', 'hipotese_legal hl');
50 53 $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'BaseLegalHipoteseLegal', 'hl.base_legal', 'hipotese_legal hl');
51 54  
... ...
sei/web/modulos/peticionamento/int/MdPetIntercorrenteINT.php
... ... @@ -226,6 +226,21 @@
226 226 $objMdPetCriterioRN = new MdPetCriterioRN();
227 227 $arrMdPetCriterioDTO = $objMdPetCriterioRN->consultar($objMdPetCriterioDTO);
228 228  
  229 + //Tipo de Procedimento ATIVO
  230 + if (!is_null($arrMdPetCriterioDTO)) {
  231 + $objTipoProcedimentoDTO = new TipoProcedimentoDTO();
  232 + $objTipoProcedimentoDTO->setNumIdTipoProcedimento($arrMdPetCriterioDTO->getNumIdTipoProcedimento());
  233 + $objTipoProcedimentoDTO->setStrSinAtivo('S');
  234 + $objTipoProcedimentoDTO->retTodos();
  235 + $objTipoProcedimentoRN = new TipoProcedimentoRN();
  236 + $arrObjTipoProcedimentoDTO = $objTipoProcedimentoRN->consultarRN0267($objTipoProcedimentoDTO);
  237 +
  238 + if (is_null($arrObjTipoProcedimentoDTO)){
  239 + $arrMdPetCriterioDTO = null;
  240 + }
  241 + }
  242 +
  243 +
229 244 //Se não tem criterio intercorrente cadastrado, verifica se tem interorrente padrão cadastrado.
230 245 if (is_null($arrMdPetCriterioDTO)) {
231 246 $objMdPetCriterioDTO = new MdPetCriterioDTO();
... ... @@ -238,7 +253,6 @@
238 253 $arrMdPetCriterioDTO = $objMdPetCriterioRN->consultar($objMdPetCriterioDTO);
239 254 }
240 255  
241   -
242 256 $arrRetorno = array();
243 257 if (!is_null($arrMdPetCriterioDTO)) {
244 258  
... ...
sei/web/modulos/peticionamento/md_pet_intercorrente_criterio_padrao.php
... ... @@ -413,7 +413,7 @@ PaginaSEI::getInstance()->fecharHtml();
413 413  
414 414 function carregarDependenciaNivelAcesso() {
415 415 //Ajax para carregar os niveis de acesso após a escolha do tipo de processo
416   - objAjaxIdNivelAcesso = new infraAjaxMontarSelectDependente('txtTipoProcesso', 'selNivelAcesso', '< ?=$strLinkAjaxNivelAcesso?>');
  416 + objAjaxIdNivelAcesso = new infraAjaxMontarSelectDependente('txtTipoProcesso', 'selNivelAcesso', '<?=$strLinkAjaxNivelAcesso?>');
417 417 objAjaxIdNivelAcesso.prepararExecucao = function () {
418 418 document.getElementById('selNivelAcesso').innerHTML = '';
419 419 return infraAjaxMontarPostPadraoSelect('null', '', 'null') + '&idTipoProcesso=' + document.getElementById('hdnIdTipoProcesso').value;
... ...
sei/web/modulos/peticionamento/md_pet_intercorrente_usu_ext_cadastro_inicializar.php
... ... @@ -35,7 +35,17 @@
35 35 //Fim RN
36 36  
37 37 //RN para exibir Hipotese Legal
38   - $exibirHipoteseLegal = true;
39   - //@todo Não estou conseguindo instanciar aqui
40   - //$exibirHipoteseLegal = MdPetIntercorrenteINT::verificarHipoteseLegal();
  38 +
  39 + $objInfraParametroDTO = new InfraParametroDTO();
  40 + $objMdPetParametroRN = new MdPetParametroRN();
  41 + $objInfraParametroDTO->retTodos();
  42 + $objInfraParametroDTO->setStrNome('SEI_HABILITAR_HIPOTESE_LEGAL');
  43 + $objInfraParametroDTO = $objMdPetParametroRN->consultar($objInfraParametroDTO);
  44 + $valorParametroHipoteseLegal = $objInfraParametroDTO->getStrValor();
  45 +
  46 + if ($valorParametroHipoteseLegal=='0') {
  47 + $exibirHipoteseLegal = false;
  48 + }else{
  49 + $exibirHipoteseLegal = true;
  50 + }
41 51 //Fim RN
42 52 \ No newline at end of file
... ...
sei/web/modulos/peticionamento/md_pet_intercorrente_usu_ext_cadastro_js.php
... ... @@ -358,7 +358,10 @@
358 358 var hdnNivelAcesso = document.createElement('input');
359 359  
360 360 divNivelAcesso.innerHTML = '';
361   - divHipoteseLegal.innerHTML = '';
  361 +
  362 + if (divHipoteseLegal!=null){
  363 + divHipoteseLegal.innerHTML = '';
  364 + }
362 365  
363 366 lblNivelAcesso.className = 'infraLabel';
364 367 lblNivelAcesso.id = 'lblNivelAcesso';
... ...
sei/web/modulos/peticionamento/md_pet_usu_ext_cadastro_inicializacao.php
... ... @@ -294,6 +294,7 @@ $tipoConferenciaRN = new TipoConferenciaRN();
294 294 $tipoConferenciaDTO = new TipoConferenciaDTO();
295 295 $tipoConferenciaDTO->retTodos();
296 296 $tipoConferenciaDTO->setStrSinAtivo('S');
  297 +$tipoConferenciaDTO->setOrdStrDescricao(InfraDTO::$TIPO_ORDENACAO_ASC);
297 298 $arrTipoConferencia = $tipoConferenciaRN->listar( $tipoConferenciaDTO );
298 299  
299 300 //tamanho maximo de arquivo, tem o interno do SEI e tem o da parametrizaçao
... ...
sei/web/modulos/peticionamento/md_pet_usu_ext_recibo_lista.php
... ... @@ -85,18 +85,20 @@ try {
85 85 }
86 86  
87 87 //$objMdPetReciboDTO->setOrd('DataHoraRecebimentoFinal', InfraDTO::$TIPO_ORDENACAO_DESC );
88   - $objMdPetReciboDTO->setOrdDthDataHoraRecebimentoFinal(InfraDTO::$TIPO_ORDENACAO_DESC);
89   -
  88 + //objMdPetReciboDTO->setOrdDthDataHoraRecebimentoFinal(InfraDTO::$TIPO_ORDENACAO_DESC);
  89 +
  90 + PaginaSEIExterna::getInstance()->prepararOrdenacao($objMdPetReciboDTO, 'DataHoraRecebimentoFinal', InfraDTO::$TIPO_ORDENACAO_DESC);
  91 + PaginaSEIExterna::getInstance()->prepararPaginacao($objMdPetReciboDTO,200);
  92 +
90 93 $objMdPetReciboRN = new MdPetReciboRN();
91   - //PaginaSEIExterna::getInstance()->prepararOrdenacao($objMdPetReciboDTO, 'DataHoraRecebimentoFinal', InfraDTO::$TIPO_ORDENACAO_DESC);
92 94 $arrObjMdPetReciboDTO = $objMdPetReciboRN->listar($objMdPetReciboDTO);
  95 +
  96 + PaginaSEIExterna::getInstance()->processarPaginacao($objMdPetReciboDTO);
  97 +
93 98 $numRegistros = count($arrObjMdPetReciboDTO);
94   -
  99 +
95 100 if ($numRegistros > 0){
96 101  
97   - PaginaSEIExterna::getInstance()->prepararPaginacao($objMdPetReciboDTO,1);
98   - PaginaSEIExterna::getInstance()->processarPaginacao($objMdPetReciboDTO);
99   -
100 102 $bolAcaoConsultar = SessaoSEIExterna::getInstance()->verificarPermissao('md_pet_usu_ext_recibo_consultar');
101 103  
102 104 $strResultado = '';
... ... @@ -110,7 +112,7 @@ try {
110 112 $strResultado .= '<th class="infraTh" width="15%">'.PaginaSEIExterna::getInstance()->getThOrdenacao($objMdPetReciboDTO,'Data e Horário','DataHoraRecebimentoFinal',$arrObjMdPetReciboDTO).'</th>'."\n";
111 113 $strResultado .= '<th class="infraTh" width="20%">'.PaginaSEIExterna::getInstance()->getThOrdenacao($objMdPetReciboDTO,'Número do Processo','NumeroProcessoFormatado',$arrObjMdPetReciboDTO).'</th>'."\n";
112 114 $strResultado .= '<th class="infraTh" width="15%">'.PaginaSEIExterna::getInstance()->getThOrdenacao($objMdPetReciboDTO,'Recibo','NumeroProcessoFormatadoDoc',$arrObjMdPetReciboDTO).'</th>'."\n";
113   - $strResultado .= '<th class="infraTh" width="30%">'.PaginaSEIExterna::getInstance()->getThOrdenacao($objMdPetReciboDTO,'Tipo de Peticionamento','TipoPeticionamento',$arrObjMdPetReciboDTO).'</th>'."\n";
  115 + $strResultado .= '<th class="infraTh" width="30%">'.PaginaSEIExterna::getInstance()->getThOrdenacao($objMdPetReciboDTO,'Tipo de Peticionamento','StaTipoPeticionamento',$arrObjMdPetReciboDTO).'</th>'."\n";
114 116 $strResultado .= '<th class="infraTh" width="15%">Ações</th>'."\n";
115 117 $strResultado .= '</tr>'."\n";
116 118 $strCssTr='';
... ... @@ -118,7 +120,6 @@ try {
118 120 $protocoloRN = new ProtocoloRN();
119 121  
120 122 for($i = 0;$i < $numRegistros; $i++){
121   -
122 123 $protocoloDTO = new ProtocoloDTO();
123 124 $protocoloDTO->retDblIdProtocolo();
124 125 $protocoloDTO->retStrProtocoloFormatado();
... ...
sei/web/modulos/peticionamento/rn/MdPetAtualizadorRN.php
... ... @@ -1,969 +0,0 @@
1   -<?
2   -/**
3   - * ANATEL
4   - *
5   - * 21/05/2016 - criado por marcelo.bezerra - CAST
6   - *
7   - */
8   -
9   -require_once dirname(__FILE__) . '/../../../SEI.php';
10   -
11   -class MdPetAtualizadorRN extends InfraRN
12   -{
13   -
14   - private $numSeg = 0;
15   - private $versaoAtualDesteModulo = '1.1.0';
16   - private $nomeDesteModulo = 'PETICIONAMENTO E INTIMAÇÃO ELETRÔNICOS';
17   - private $nomeParametroModulo = 'VERSAO_MODULO_PETICIONAMENTO';
18   - private $historicoVersoes = array('0.0.1', '0.0.2', '1.0.3', '1.0.4', '1.1.0');
19   -
20   - public function __construct()
21   - {
22   - parent::__construct();
23   - }
24   -
25   - protected function inicializarObjInfraIBanco()
26   - {
27   - return BancoSEI::getInstance();
28   - }
29   -
30   - private function inicializar($strTitulo)
31   - {
32   -
33   - ini_set('max_execution_time', '0');
34   - ini_set('memory_limit', '-1');
35   -
36   - try {
37   - @ini_set('zlib.output_compression', '0');
38   - @ini_set('implicit_flush', '1');
39   - } catch (Exception $e) {
40   - }
41   -
42   - ob_implicit_flush();
43   -
44   - InfraDebug::getInstance()->setBolLigado(true);
45   - InfraDebug::getInstance()->setBolDebugInfra(true);
46   - InfraDebug::getInstance()->setBolEcho(true);
47   - InfraDebug::getInstance()->limpar();
48   -
49   - $this->numSeg = InfraUtil::verificarTempoProcessamento();
50   -
51   - $this->logar($strTitulo);
52   - }
53   -
54   - private function logar($strMsg)
55   - {
56   - InfraDebug::getInstance()->gravar($strMsg);
57   - flush();
58   - }
59   -
60   - private function finalizar($strMsg = null, $bolErro)
61   - {
62   -
63   - if (!$bolErro) {
64   - $this->numSeg = InfraUtil::verificarTempoProcessamento($this->numSeg);
65   - $this->logar('TEMPO TOTAL DE EXECUÇÃO: ' . $this->numSeg . ' s');
66   - } else {
67   - $strMsg = 'ERRO: ' . $strMsg;
68   - }
69   -
70   - if ($strMsg != null) {
71   - $this->logar($strMsg);
72   - }
73   -
74   - InfraDebug::getInstance()->setBolLigado(false);
75   - InfraDebug::getInstance()->setBolDebugInfra(false);
76   - InfraDebug::getInstance()->setBolEcho(false);
77   - $this->numSeg = 0;
78   - die;
79   - }
80   -
81   - //Contem atualizações da versao 1.1.0 (Intercorrente)
82   - protected function instalarv110()
83   - {
84   - try {
85   -
86   - $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance());
87   - $this->logar('EXECUTANDO A INSTALACAO DA VERSAO 1.1.0 DO MODULO ' . $this->nomeDesteModulo . ' NA BASE DO SEI');
88   -
89   - // INICIO 7048
90   - //Cria a tabela de tipo de resposta
91   - BancoSEI::getInstance()->executarSql('CREATE TABLE md_pet_criterio (
92   - id_md_pet_criterio ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
93   - sin_ativo ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NOT NULL,
94   - sin_criterio_padrao ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NOT NULL,
95   - sta_nivel_acesso ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NULL,
96   - sta_tipo_nivel_acesso ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NULL,
97   - id_hipotese_legal ' . $objInfraMetaBD->tipoNumero() . ' NULL,
98   - id_tipo_procedimento ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL
99   - )');
100   -
101   - $objInfraMetaBD->adicionarChavePrimaria('md_pet_criterio','pk_md_pet_criterio',array('id_md_pet_criterio'));
102   -
103   - $objInfraMetaBD->adicionarChaveEstrangeira('fk1_md_pet_criterio', 'md_pet_criterio', array('id_hipotese_legal'), 'hipotese_legal', array('id_hipotese_legal'));
104   - $objInfraMetaBD->adicionarChaveEstrangeira('fk2_md_pet_criterio', 'md_pet_criterio', array('id_tipo_procedimento'), 'tipo_procedimento', array('id_tipo_procedimento'));
105   -
106   - if (BancoSEI::getInstance() instanceof InfraMySql) {
107   - BancoSEI::getInstance()->executarSql('create table seq_md_pet_criterio (id bigint not null primary key AUTO_INCREMENT, campo char(1) null) AUTO_INCREMENT = 1');
108   - } else if (BancoSEI::getInstance() instanceof InfraSqlServer) {
109   - BancoSEI::getInstance()->executarSql('create table seq_md_pet_criterio (id bigint identity(1,1), campo char(1) null)');
110   - } else if (BancoSEI::getInstance() instanceof InfraOracle) {
111   - BancoSEI::getInstance()->criarSequencialNativa('seq_md_pet_criterio', 1);
112   - }
113   - // FIM 7048
114   -
115   - //Criando campo md_pet_rel_recibo_protoc.id_protocolo_relacionado caso ainda nao exista
116   - $coluna = $objInfraMetaBD->obterColunasTabela('md_pet_rel_recibo_protoc', 'id_protocolo_relacionado');
117   -
118   - if( $coluna == null || !is_array( $coluna ) ){
119   -
120   - $objInfraMetaBD->adicionarColuna('md_pet_rel_recibo_protoc', 'id_protocolo_relacionado', '' . $objInfraMetaBD->tipoNumeroGrande() , 'NULL');
121   -
122   - $objInfraMetaBD->adicionarChaveEstrangeira('fk5_md_pet_rel_recibo_protoc', 'md_pet_rel_recibo_protoc', array('id_protocolo_relacionado'), 'protocolo', array('id_protocolo'));
123   -
124   - }
125   -
126   - //coluna id_documento na tabela de recibo
127   - $objInfraMetaBD->adicionarColuna('md_pet_rel_recibo_protoc', 'id_documento', '' . $objInfraMetaBD->tipoNumeroGrande() , 'NULL');
128   - $objInfraMetaBD->adicionarChaveEstrangeira('fk6_md_pet_rel_recibo_protoc', 'md_pet_rel_recibo_protoc', array('id_documento'), 'documento', array('id_documento'));
129   -
130   - //Atualizando dados da tabela
131   - $objInfraParametro = new InfraParametro(BancoSEI::getInstance());
132   - $ret = $objInfraParametro->listarValores(array('ID_SERIE_RECIBO_MODULO_PETICIONAMENTO'), false);
133   -
134   - $arrObjInfraParametroDTO = NULL;
135   - $idSeriePet = array_key_exists('ID_SERIE_RECIBO_MODULO_PETICIONAMENTO' , $ret) ? $ret['ID_SERIE_RECIBO_MODULO_PETICIONAMENTO'] : null;
136   -
137   - if($idSeriePet){
138   - $arrObjDocumentDTO = array();
139   -
140   - $objDocumentoDTO = new DocumentoDTO();
141   - $objDocumentoDTO->retDblIdDocumento();
142   - $objDocumentoDTO->retDblIdProcedimento();
143   - $objDocumentoDTO->setNumIdSerie($idSeriePet);
144   - $objDocumentoRN = new DocumentoRN();
145   - $countDoc = $objDocumentoRN->contarRN0007($objDocumentoDTO);
146   -
147   - if ($countDoc > 0) {
148   - $arrObjDocumentDTO = $objDocumentoRN->listarRN0008($objDocumentoDTO);
149   - foreach ($arrObjDocumentDTO as $objDocumentoDTO) {
150   - $objMdPetReciboDTO = new MdPetReciboDTO();
151   - $objMdPetReciboRN = new MdPetReciboRN();
152   - $objMdPetReciboDTO->setNumIdProtocolo($objDocumentoDTO->getDblIdProcedimento());
153   - $objMdPetReciboDTO->setDblIdDocumento($objDocumentoDTO->getDblIdDocumento());
154   - $objMdPetReciboDTO->retNumIdReciboPeticionamento();
155   - $arrObjMdPetReciboDTO = $objMdPetReciboRN->listar($objMdPetReciboDTO);
156   -
157   - foreach ($arrObjMdPetReciboDTO as $objDTO){
158   - $objMdPetReciboRN->alterar($objDTO);
159   - }
160   - }
161   - }
162   -
163   - }
164   -
165   -
166   -
167   -
168   -
169   - //Atualizando parametro para controlar versao do modulo
170   - $this->logar('ATUALIZANDO PARAMETRO ' . $this->nomeParametroModulo . ' NA TABELA infra_parametro PARA CONTROLAR A VERSÃO DO MÓDULO');
171   - BancoSEI::getInstance()->executarSql('UPDATE infra_parametro SET valor = \'1.1.0\' WHERE nome = \'' . $this->nomeParametroModulo . '\' ');
172   -
173   - } catch (Exception $e) {
174   - $this->logar($e->getTraceAsString());
175   - print_r($e);
176   - die();
177   - }
178   - }
179   -
180   -//Contem atualizações da versao 1.0.4
181   - protected function instalarv104()
182   - {
183   - try {
184   -
185   - $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance());
186   - $this->logar('EXECUTANDO A INSTALACAO DA VERSAO 1.0.4 DO MODULO ' . $this->nomeDesteModulo . ' NA BASE DO SEI');
187   -
188   - //Caso exista a coluna na tabela a instalação é nova, então não é necessario executar a migração de dados
189   - $colunasTabela = $objInfraMetaBD->obterColunasTabela('md_pet_rel_tp_ctx_contato', 'id_tipo_contato');
190   - if (count($colunasTabela) <= 0 || $colunasTabela[0]['column_name'] != 'id_tipo_contato') {
191   - $this->logar('ADICIONANDO A COLUNA id_tipo_contato NA TABELA md_pet_rel_tp_ctx_contato');
192   - $objInfraMetaBD->adicionarColuna('md_pet_rel_tp_ctx_contato', 'id_tipo_contato', $objInfraMetaBD->tipoNumero(), 'NOT NULL');
193   -
194   - $this->logar('ATUALIZANDO OS REGISTROS DA TABELA md_pet_rel_tp_ctx_contato');
195   - BancoSEI::getInstance()->executarSql('UPDATE md_pet_rel_tp_ctx_contato set id_tipo_contato = id_tipo_contexto_contato');
196   -
197   - $this->logar('EXCLUINDO A COLUNA id_tipo_contexto_contato DA TABELA md_pet_rel_tp_ctx_contato');
198   - $objInfraMetaBD->excluirColuna('md_pet_rel_tp_ctx_contato', 'id_tipo_contexto_contato');
199   - }
200   -
201   - if ($this->existeIdEmailSistemaPecitionamento()) {
202   - $this->atualizarIdEmailSistemaAlertaPecitionamento();
203   - $this->atualizarIdEmailSistemaConfirmacaoPeticionamento();
204   - }
205   -
206   - //inclusao de nova tarja de assinatura customizada, para uso pelo modulo peticionamento em caso de documento nato-digital
207   - $objTarjaAssinaturaDTO = new TarjaAssinaturaDTO();
208   - $objTarjaAssinaturaDTO->setStrStaTarjaAssinatura( MdPetAssinaturaRN::$TT_ASSINATURA_SENHA_PETICIONAMENTO );
209   -
210   - $objTarjaAssinaturaDTO->setStrTexto('<hr style="margin: 0 0 4px 0;" /> <table> <tr> <td> @logo_assinatura@ </td> <td> <p style="margin:0;text-align: left; font-size:11pt;font-family: Calibri;">Documento assinado eletronicamente por <b>@nome_assinante@</b>, <b>@tratamento_assinante@</b>, em @data_assinatura@, às @hora_assinatura@, conforme horário oficial de Brasília, com fundamento no art. 6º, § 1º, do <a title="Acesse o Decreto" href="http://www.planalto.gov.br/ccivil_03/_Ato2015-2018/2015/Decreto/D8539.htm" target="_blank">Decreto nº 8.539, de 8 de outubro de 2015</a>.</p> </td> </tr> </table>');
211   -
212   - $objTarjaAssinaturaDTO->setStrLogo('iVBORw0KGgoAAAANSUhEUgAAAFkAAAA8CAMAAAA67OZ0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAADTtpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDQuMi4yLWMwNjMgNTMuMzUyNjI0LCAyMDA4LzA3LzMwLTE4OjEyOjE4ICAgICAgICAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6eG1wUmlnaHRzPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvcmlnaHRzLyIKICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgIHhtbG5zOklwdGM0eG1wQ29yZT0iaHR0cDovL2lwdGMub3JnL3N0ZC9JcHRjNHhtcENvcmUvMS4wL3htbG5zLyIKICAgeG1wUmlnaHRzOldlYlN0YXRlbWVudD0iIgogICBwaG90b3Nob3A6QXV0aG9yc1Bvc2l0aW9uPSIiPgogICA8ZGM6cmlnaHRzPgogICAgPHJkZjpBbHQ+CiAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ii8+CiAgICA8L3JkZjpBbHQ+CiAgIDwvZGM6cmlnaHRzPgogICA8ZGM6Y3JlYXRvcj4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGk+QWxiZXJ0byBCaWdhdHRpPC9yZGY6bGk+CiAgICA8L3JkZjpTZXE+CiAgIDwvZGM6Y3JlYXRvcj4KICAgPGRjOnRpdGxlPgogICAgPHJkZjpBbHQ+CiAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ii8+CiAgICA8L3JkZjpBbHQ+CiAgIDwvZGM6dGl0bGU+CiAgIDx4bXBSaWdodHM6VXNhZ2VUZXJtcz4KICAgIDxyZGY6QWx0PgogICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCIvPgogICAgPC9yZGY6QWx0PgogICA8L3htcFJpZ2h0czpVc2FnZVRlcm1zPgogICA8SXB0YzR4bXBDb3JlOkNyZWF0b3JDb250YWN0SW5mbwogICAgSXB0YzR4bXBDb3JlOkNpQWRyRXh0YWRyPSIiCiAgICBJcHRjNHhtcENvcmU6Q2lBZHJDaXR5PSIiCiAgICBJcHRjNHhtcENvcmU6Q2lBZHJSZWdpb249IiIKICAgIElwdGM0eG1wQ29yZTpDaUFkclBjb2RlPSIiCiAgICBJcHRjNHhtcENvcmU6Q2lBZHJDdHJ5PSIiCiAgICBJcHRjNHhtcENvcmU6Q2lUZWxXb3JrPSIiCiAgICBJcHRjNHhtcENvcmU6Q2lFbWFpbFdvcms9IiIKICAgIElwdGM0eG1wQ29yZTpDaVVybFdvcms9IiIvPgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+RO84nQAAAwBQTFRFamts+fn5mp6hc3Nz9fX1U1NTS0tKnaGk6unqzM3P7e3u8fHxuLm7/Pz8lZmc2dnZxcXGWlpavr29wsLCp6eniYmKhYaGZWZmkpaZ0dHS5eXlkZGSrq2utbW2XV1d4uHhfX1+sbGy1dXW3d3dqampgYGCjY2OyMnKYWJihYaIjY6RnZ2ejpGSra+xeHl7lZWVmJiYgoKFpKaptre5vb7Aurq8oaGikpSWmJufh4iKkZKVysrMtrq7ioyOdXZ4fn+ArrGywcLEzc7QiYqMt7W1/v/8mZqcxsbIpqqrZGFhztDSeXp7iIWGnJqalJKSf4CCg4B/amZmoaSm5+fmvLy6ys3OzMzL2tze3dzaa2hny8nH0M7NiYiGbG5v19jYWFVVcG5s2drcxMTD0dPUx8jJ/P79sbO1j46OmZWU1dfXhIKC1NLTd3h68fL0wsTGb3By+vf3YV1d2NjW7u7u6Ojpe3x9fHp54eLkxMLAvLq5/f39+vr63t7fXFtamZiW6urqzMnKwL+98PHvrKytq6qq7evpr62toKKkvr/BOzk42dvad3V06OjmpaSj5efnnZyblpWT/fz6ZWZo9/f3jYyKqquteXd47u3rhYSC5eTisbCueXh2qaimWlhXjImIY2Bfc3Bw////UFBP/v7+/v////7///3+g4SHaGlpYmNj8vPzZ2dn/vz9WFhYtbO0ztDPWltbbW9u/v7/xcPEiouLrayq4+Tms7S2VldX7/DyqKel+/z++Pj4+ff4cXBuuru7u7y+7+/vx8fH8/HysK+wXFxc/fv8s7OztrWzZWRio6Ohl5eZ1NTUZGRkraus2NbX4N/d0dDP3dzc9ff14ODg9/n4oaCg4eHf+/v76+vrQD4+7Ozs/f3/7evsRUJCvLy87vDtysvLXl9fzczNwsPDYGBgw7+/ysjJgH19gH9/29rbwMC/Tk1MlJCPoaCeX1tb6ufo4uPjx8fF5OPht7e3X15cuLe4tLKzn56f09TW1dXTYWJkh4eHZGJj3+Diq6urXLJJJAAAC8BJREFUeNqsmAtYE1cWgAcmJLwSwjMJAYxiQhIeITyEgCGiAioCaiqWaoCiFQVKtgWsJFRapEpFatuodetKHYaQkIiipZVWqqBQ64OqrduGuquVR1sDu62u69JdW/fOZCCJovjttyffl9yZ3PvfM2fOOffcC6UgJ1a5R1GeJI6OjvHx8TQgTCYzLiEsTCgU8qRSQcaN4VNsWWpsndep7u7u2NhY9+7UkpKSJFnqkApBIOTrufFgJDb2MUIQ4xLYAMnjSRf4+koEAoGupLcMdQtVRBs0JA3JImovpVKpUED6SAMCnZhLo1Dmrlzp8hhJxCQkJGRdGhA6nV5aWjrs7T08nJw8Ono6hD7aXZd2ml5ALygoGAb33QPvBs68ACsZIjXkAcBLmpH/RVC7H7xlaZ86qmTcgY47UsKbEW3LU4Mmx9tTJwWYGJFAeh4URXGc2/yUCqJTaGrLRlFi3khIAUMUCxl9Kjj4qFQo1WYeC27ie6KjSK+AMHIsuDu92qpq8wCK+P+6cdasGvRRM6G21yI9hJPdn+Z1vTCfJvZlNccIgQt6IIj2iZ0zjY+Q0SnfGvZ921EiMC645kKjxNOen06NTMaTdH5oklwhl8OHdyyhUWgJudOS+yG9HRl9RGWrzm/FKfRNHYZEWnyCdON0ZHa/Xv8kO9u9FJSlY3DNzclMmtD34rTkVr1xajKKpFgaVIcu9URkkKq7EFW3MEEiZk1L5hsfJqtfrP74lXK3LhTDqQy/r+uOTX7egIUVKbhKvmOGQ7dEKpaxpvN/Np/BsLdzWeJWkDMpi+reAv5NNftIsjjpEekXLgJ0bgUDapf2JIsFnIgj0+o8YkMGuQMtX8SkgbTpyGTSEcTkIuX6CsTcLJkyAlzmRvD1nR1lXhXcJNjl4fTxsBSO9Pfb6IwaFjG3UxxXrKDQHF9B0F+lAp5AOH5BnM5RyF5Gnk9vVbR3lMUmVcBHb05lDXwm4nbhYH/rJBmY1QWAKe65q+avX09CB1LFPMF4VZchWQxH6MdR834+1OZbFg0nKfQhdo5Dch0YcHYu7zFZ/Yk3yG+10blrHo3iGK4G/1JdUWoal6eLm4Hli25FEsSZcTVp0Nh5v+w4BBtbT9u4peFITF1dTMyN7ple8kkD8YL4fCv5mGZRPIWynhjRM0cs0bljHY9VySDo6OmP69sZTvfLZr6raA2iW5+/pjSKsvb34FWrqrZXsM0TobY7iD9iq3N4PLDyuhfxQTMWSHSSdSiJZHCokjIUrXdvw56tTX6uvXx9X9vwpM7Hopes2h7uHh14/LhIEiF0Jf7Y3TcyaGNndSITXDAD1oL/UVaWRCcIDZ8d1eATWgFBg1uD4c4RcpHrg3Z+Z97w5Bv7mFI3b3ag+73AwMAGXwFcSrWQO9oHrWTQ75M9NEdHmlAYdaRLlVYh0GUlgVXY2M+Ajur7onJhp0FA9ukMcsLJ+HM3r3WUht0mgixUnBTVRZA9bcmgc3k4M4FJCxNIujXrSnRiTokSLA16Bn8waGzcA27qI+9znUNuc3LyBp0t4b8yXrjiE2L4VhkcqrE0fduCgmysAeQT+oowaUKYQJecXcLlyETbx0NDIyNFIrZvmhkCZL9rqdedxsijk2QXmnROGUHew1FSSBPkwT47ncHK4UwPFUil4oQbHE4JJw3RdHVpcEGK9WN9ZG519vjs83OCJ1VxuSChlFmax/ZUKLdP6NzZ5/lIrnvh9rhOIpb0LigpgWfa+G0xoymILCt/KO7qhIK4UtYQVuzMT4AhHuEckjxPTxtrEM5IXVKhyxK4z1FEKGWzrOVAsbGpncypPrG2O61nYj6VSxxPKJX4+XFlsor0iJIkRUbPo2SAHPDH0qU6OV3HEbMS34WVUBa9vMvk0ONxcwC5aAR25pYvYQqSomoIdHXc9vmzWNnZiUNHbp6mh4TcPB9UgPvdfSc7skN0agzL7FEnzBKXSNxqeIPw0X6935ZQkS/EGEZYmM5+ueESiQJiEY/isSARxZ8UdbCULLf7A9TYtZ892ZCqE0jZPLFMXAIHHkNyZUFGqLU9z8mpiUz2QS7qgZ0lG1ekVwwGzSfywyrpOrwhj5L0GrCGf384npcIcny05dleEesEYhmHE6FMegC8R2Vm97e1tXViYPIu5Erbd+Q395bHQJ1kdg9R+ezwpWP2+0sql62IVYPprvID1FayI0FGetzHpTpAFqSmGfBnqykY58IKCL7FPvsVMkPkx/ZrMJBOZdZWEzlNtUNQipEN6RdmKSOBMujVwQdWMohnQmeE6hzMCkk8Eoy7vhYb3SU35+Z+Jce81ERyc6shqRCVxpqHPcSlKqwRKhNCoyYsjwXZkwMfrYhQrdam4kBtVyfU2jtXh+mMojWi/4Tj0VfVNwV5wp/BF6CabhSqrfUm+tln9lMT9Fxusgq/2Ws047/BbbU25HjacaK/CWO3oGhKi4n64zcqAnZIiw5EHp7QFEsXVCoB3wjiH7ea+0l/vK+8rcFhkhwfz7SsI2UiTuOlzxcWRbpd2VcYXDx+5nDGT2zDQObezKob3x34MGSraX7tzoLdmffG6wu/smi9sWS9BqWaTIj/SoMJ+50/5mOa9Od4moWM9Cz02r9JPpZhvpoPm3cG5LgeXJzh+aXmVOXBwtU/wzPG8x1q859dQ/7mtTs/LM50sEQAO4nH5nV0SDo6/Li3blVwRposRQ5OTqXFncW7/Xlh5smcr/curjS8nfcnUu1yZ/jtmk085HDm4qVvbArVhsLUXtjMLULdvsjIW2qw2OZqQ0eH732/fUXcW6Dk2Qune1mmtCNTh/NW716c0rOtafM7r3+w695y5/pxTdHu0Zw7t5a9AW/R7jK+tyUneFkm4nPyuYNFZyYqgoGBakxAVVBeLpdfI14HTqbR4nBrqH68viY/p3rpTwfunN/00vszR+T5W7r276aP7ftg2R8av/sh22nxq3Dwpkbko7w1efvcpq7iJ27h5AvMhHmW6V9beKRYQ194STMUkK3xH3JgVakuehxaXfmcBzJj5iztjwuHzGcumRFSQWVBlRqx2wXZxYKVHEYk+BbcFVuaX9CasLSAZ4bmQ+oW0L25GbW6MVX1GE2tgpNFcWHzrNO5iR5YulJVzRjboXd5LbEJHe2oslHv2BRA1J4cFxcWbg2sayd5WLPlzDe7QEy0IN9v/sKbZFG/+MtyEJ1EtKOP6os+rPMEGVF/eHDT6jP1mSnPHFz2cvb1po8ub2k8//Xfzq35x19rRQc3vDOU8d7Oxg+e8WjMKfRHp96IoXZ2jgsThuO9nv353vv/lHM2fPuS16fL/52zfEfBdU7Blpy6+qWXc/K3BHlXnnyZnV97h5V959zfU560H8QiBVsHE9jScGwuauX1xv2d5qK3R683wucuFxaleB0I/jZnA7ItZ3P9pzvza73g1+HzKSnv1S4dy6BOs43G10FA3ooZjup1/crOPzrvFXmTL/3yS/WyZSleL8nlOY0p53Oy92/7Hv7Iq35zfkbKO0s3FednTkO2WCNMKN2Kvxb5b78tTehRFrr+zCjaRY18s+HGgatow1iO57bL/bU9xk8rzz3bQH61IXPxMvIG6jRnCvcJ8h7LPed7hz3QWVVa/38trEJcn2H1DGkQUvb7qxFSsVx90f8ai6ShH/Ynfeh95bZqmvMK3M5Coe8eyyvVfq5WYYs8SlXjDo2AK0SlPgS8D7QRVIVlZrSZapr+xMLiG1LJnscnAIsrt9itUehjDmNsROLUxod8BJJQ1HYQShx1aK1orR1IO/2RRX2nUwW0VrxAQkf+vxLQ6Tl2AzoxO0si8ekG26OYmG7sQK/S3f3evbt3o6MDwebj7NmzMzHpBRIQELAVyIPa2trZPk+SfZ6eZD8HCCHNlnFBLSnjVIByEtSTQGAYVlqO9EDJrzcaGYz+Vj6fPzIY1Nfe7gnqpk5Qkz1WmpyamvxqECgFURX78HQ6MdgHZ+F8vF618MEER5VHIWwCI5igH5tgEEhfu+cTpN/PGzj8fwUYAEHf/4ET3ikCAAAAAElFTkSuQmCC');
213   -
214   - $objTarjaAssinaturaDTO->setStrSinAtivo('S');
215   -
216   - $objTarjaAssinaturaBD = new TarjaAssinaturaBD($this->getObjInfraIBanco());
217   - $objTarjaAssinaturaDTO = $objTarjaAssinaturaBD->cadastrar( $objTarjaAssinaturaDTO );
218   -
219   - //Atualizando parametro para controlar versao do modulo
220   - $this->logar('ATUALIZANDO PARAMETRO ' . $this->nomeParametroModulo . ' NA TABELA infra_parametro PARA CONTROLAR A VERSÃO DO MÓDULO');
221   - BancoSEI::getInstance()->executarSql('UPDATE infra_parametro SET valor = \'1.0.4\' WHERE nome = \'' . $this->nomeParametroModulo . '\' ');
222   -
223   - } catch (Exception $e) {
224   - $this->logar($e->getTraceAsString());
225   - print_r($e);
226   - die();
227   - }
228   - }
229   -
230   - //Contem atualizações da versao 1.0.0
231   - protected function instalarv100()
232   - {
233   -
234   - try {
235   -
236   - $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance());
237   -
238   - $this->logar('EXECUTANDO A INSTALACAO DA VERSAO 1.0.3 DO MODULO ' . $this->nomeDesteModulo . ' NA BASE DO SEI');
239   - $this->logar('CRIANDO A TABELA md_pet_hipotese_legal');
240   -
241   - BancoSEI::getInstance()->executarSql('CREATE TABLE md_pet_hipotese_legal (
242   - id_md_pet_hipotese_legal ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL )');
243   -
244   - $objInfraMetaBD->adicionarChavePrimaria('md_pet_hipotese_legal', 'pk_md_pet_hipotese_legal', array('id_md_pet_hipotese_legal'));
245   -
246   - $objInfraMetaBD->adicionarChaveEstrangeira('fk_id_md_pet_hip_legal1', 'md_pet_hipotese_legal',
247   - array('id_md_pet_hipotese_legal'), 'hipotese_legal', array('id_hipotese_legal'));
248   -
249   - $this->logar('DROP DA COLUNA id_unidade (Não é mais unidade única. Agora terá opção para Peticionamento de Processo Novo para Múltiplas Unidades)');
250   -
251   - if (BancoSEI::getInstance() instanceof InfraMySql) {
252   - $objInfraMetaBD->excluirChaveEstrangeira('md_pet_tipo_processo', 'fk_pet_tp_proc_unidade_02');
253   - $objInfraMetaBD->excluirIndice('md_pet_tipo_processo', 'fk_pet_tp_proc_unidade_02');
254   - } else {
255   - $objInfraMetaBD->excluirChaveEstrangeira('md_pet_tipo_processo', 'fk_pet_tp_proc_unidade_02');
256   - }
257   -
258   - BancoSEI::getInstance()->executarSql('ALTER TABLE md_pet_tipo_processo DROP COLUMN id_unidade');
259   -
260   - $this->logar('CRIANDO A TABELA md_pet_rel_tp_processo_unid (para permitir multiplas unidades)');
261   -
262   - BancoSEI::getInstance()->executarSql('CREATE TABLE md_pet_rel_tp_processo_unid (
263   - id_md_pet_tipo_processo ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
264   - id_unidade ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
265   - sta_tp_unidade ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NOT NULL
266   - )');
267   -
268   - //Tabelas Abaixo é o problema da modificação da PK (Pk deixou de ser composta e passou a ter SEQ)
269   - $this->logar('RECRIANDO tabela md_pet_rel_tp_processo_serie (renomeada para md_pet_rel_tp_proc_serie)');
270   - BancoSEI::getInstance()->executarSql('DROP TABLE md_pet_rel_tp_processo_serie');
271   -
272   - BancoSEI::getInstance()->executarSql('CREATE TABLE md_pet_rel_tp_proc_serie (
273   - id_md_pet_rel_tipo_proc ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
274   - id_md_pet_tipo_processo ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
275   - id_serie ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
276   - sta_tp_doc ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NOT NULL ) ');
277   -
278   - //tabela SEQ
279   - $objInfraMetaBD->adicionarChavePrimaria('md_pet_rel_tp_proc_serie', 'pk_id_md_pet_rel_tipo_proc', array('id_md_pet_rel_tipo_proc'));
280   -
281   - $objInfraMetaBD->adicionarChaveEstrangeira('fk_md_pet_rel_tp_proc_serie1', 'md_pet_rel_tp_proc_serie',
282   - array('id_md_pet_tipo_processo'), 'md_pet_tipo_processo', array('id_md_pet_tipo_processo'));
283   -
284   - $objInfraMetaBD->adicionarChaveEstrangeira('fk_md_pet_rel_tp_proc_serie2', 'md_pet_rel_tp_proc_serie',
285   - array('id_serie'), 'serie', array('id_serie'));
286   -
287   - if (BancoSEI::getInstance() instanceof InfraMySql) {
288   - BancoSEI::getInstance()->executarSql('create table seq_md_pet_rel_tp_proc_serie (id bigint not null primary key AUTO_INCREMENT, campo char(1) null) AUTO_INCREMENT = 1');
289   - } else if (BancoSEI::getInstance() instanceof InfraSqlServer) {
290   - BancoSEI::getInstance()->executarSql('create table seq_md_pet_rel_tp_proc_serie (id bigint identity(1,1), campo char(1) null)');
291   - } else if (BancoSEI::getInstance() instanceof InfraOracle) {
292   - BancoSEI::getInstance()->criarSequencialNativa('seq_md_pet_rel_tp_proc_serie', 1);
293   - }
294   -
295   - //CRIANDO NOVO TIPO DE DOCUMENTO "Recibo Eletrônico de Protocolo"
296   - $this->logar('CRIANDO MODELO "Modulo_Peticionamento_Recibo_Eletronico_Protocolo"');
297   - $modeloRN = new ModeloRN();
298   - $modeloDTO = new ModeloDTO();
299   - $modeloDTO->setNumIdModelo(null);
300   - $modeloDTO->retTodos();
301   - $modeloDTO->setStrNome('Modulo_Peticionamento_Recibo_Eletronico_Protocolo');
302   - $modeloDTO->setStrSinAtivo('S');
303   - $modeloDTO = $modeloRN->cadastrar($modeloDTO);
304   -
305   - //adicionando as seções do modelo: Corpo de Texto e Rodapé
306   - $this->logar('CRIANDO SEÇAO DO MODELO - Corpo do Texto');
307   - $secaoModeloRN = new SecaoModeloRN();
308   -
309   - $secaoModeloCorpoTextoDTO = new SecaoModeloDTO();
310   - $secaoModeloCorpoTextoDTO->retTodos();
311   - $secaoModeloCorpoTextoDTO->setNumIdSecaoModelo(null);
312   - $secaoModeloCorpoTextoDTO->setNumIdModelo($modeloDTO->getNumIdModelo());
313   - $secaoModeloCorpoTextoDTO->setStrNome('Corpo do Texto');
314   - $secaoModeloCorpoTextoDTO->setStrConteudo(null);
315   - $secaoModeloCorpoTextoDTO->setNumOrdem(0);
316   - $secaoModeloCorpoTextoDTO->setStrSinSomenteLeitura('N');
317   - $secaoModeloCorpoTextoDTO->setStrSinAssinatura('N');
318   - $secaoModeloCorpoTextoDTO->setStrSinPrincipal('S');
319   - $secaoModeloCorpoTextoDTO->setStrSinDinamica('N');
320   - $secaoModeloCorpoTextoDTO->setStrSinHtml('N');
321   - $secaoModeloCorpoTextoDTO->setStrSinCabecalho('N');
322   - $secaoModeloCorpoTextoDTO->setStrSinRodape('N');
323   - $secaoModeloCorpoTextoDTO->setStrSinAtivo('S');
324   -
325   - $secaoModeloCorpoTextoDTO = $secaoModeloRN->cadastrar($secaoModeloCorpoTextoDTO);
326   -
327   - //secao do rodapé
328   - $this->logar('CRIANDO SEÇAO DO MODELO - Rodapé');
329   - $secaoModeloRodapeDTO = new SecaoModeloDTO();
330   - $secaoModeloRodapeDTO->retTodos();
331   - $secaoModeloRodapeDTO->setNumIdSecaoModelo(null);
332   -
333   - $htmlConteudo = '<hr style="border:none; padding:0; margin:5px 2px 0 2px; border-top:medium double #333" />
334   - <table border="0" cellpadding="2" cellspacing="0" width="100%">
335   - <tbody>
336   - <tr>
337   - <td align="left" style="font-family:Calibri;font-size:9pt;border:0;" width="50%"><strong>Refer&ecirc;ncia:</strong> Processo n&ordm; @processo@</td>
338   - <td align="right" style="font-family:Calibri;font-size:9pt;border:0;" width="50%">SEI n&ordm; @documento@</td>
339   - </tr>
340   - </tbody>
341   - </table>';
342   -
343   - $secaoModeloRodapeDTO->setNumIdModelo($modeloDTO->getNumIdModelo());
344   - $secaoModeloRodapeDTO->setStrNome('Rodapé');
345   - $secaoModeloRodapeDTO->setStrConteudo($htmlConteudo);
346   - $secaoModeloRodapeDTO->setNumOrdem(1000);
347   - $secaoModeloRodapeDTO->setStrSinSomenteLeitura('S');
348   - $secaoModeloRodapeDTO->setStrSinAssinatura('N');
349   - $secaoModeloRodapeDTO->setStrSinPrincipal('N');
350   - $secaoModeloRodapeDTO->setStrSinDinamica('S');
351   - $secaoModeloRodapeDTO->setStrSinHtml('S');
352   - $secaoModeloRodapeDTO->setStrSinCabecalho('N');
353   - $secaoModeloRodapeDTO->setStrSinRodape('S');
354   - $secaoModeloRodapeDTO->setStrSinAtivo('S');
355   -
356   - $secaoModeloRodapeDTO = $secaoModeloRN->cadastrar($secaoModeloRodapeDTO);
357   -
358   - //Criar o Grupo de Tipo de Documento “Internos do Sistema”.
359   - $grupoSerieRN = new GrupoSerieRN();
360   -
361   - if (BancoSEI::getInstance() instanceof InfraMySql) {
362   -
363   - //verificando antes a situaçao da tabela seq_grupo_serie
364   - $arrDados = BancoSEI::getInstance()->consultarSql('SELECT * FROM seq_grupo_serie ORDER BY id DESC LIMIT 1 ');
365   -
366   - $grupoSerieDTOLista = new GrupoSerieDTO();
367   - $grupoSerieDTOLista->retTodos();
368   - $grupoSerieDTOLista->setOrd("IdGrupoSerie", InfraDTO::$TIPO_ORDENACAO_DESC);
369   - $grupoSerieDTOLista->setNumMaxRegistrosRetorno(1);
370   -
371   - $arrListaGrupoSerie = $grupoSerieRN->listarRN0778($grupoSerieDTOLista);
372   -
373   - //ja tem registro na SEQ, insere apenas se ID da SEQ estiver incorreto
374   - if ($arrDados != null && count($arrDados) > 0) {
375   -
376   - if ($arrDados[0]['id'] < $arrListaGrupoSerie[0]->getNumIdGrupoSerie()) {
377   -
378   - //INSERT para garantir a SEQ na posiçao correta
379   - BancoSEI::getInstance()->executarSql('INSERT INTO seq_grupo_serie ( id ) VALUES ( ' . $arrListaGrupoSerie[0]->getNumIdGrupoSerie() . ') ');
380   - }
381   -
382   -
383   - } //nao tem registro na SEQ ainda, colocar o ID do grupo_serie mais atual
384   - else {
385   -
386   - //INSERT para garantir a SEQ na posiçao correta
387   - BancoSEI::getInstance()->executarSql('INSERT INTO seq_grupo_serie ( id ) VALUES ( ' . $arrListaGrupoSerie[0]->getNumIdGrupoSerie() . ') ');
388   - }
389   -
390   - }
391   -
392   - $this->logar('CRIANDO GRUPO DE TIPO DE DOCUMENTO "Internos do Sistema"');
393   - $grupoSerieDTO = new GrupoSerieDTO();
394   - $grupoSerieDTO->retTodos();
395   - $grupoSerieDTO->setNumIdGrupoSerie(null);
396   -
397   - $grupoSerieDTO->setStrNome('Internos do Sistema');
398   - $grupoSerieDTO->setStrDescricao('Tipos de Documentos internos do sistema');
399   - $grupoSerieDTO->setStrSinAtivo('S');
400   - $grupoSerieDTO = $grupoSerieRN->cadastrarRN0775($grupoSerieDTO);
401   -
402   - //Criar o Tipo de Documento “Recibo Eletrônico de Protocolo”
403   - $this->logar('CRIANDO TIPO DE DOCUMENTO Recibo Eletrônico de Protocolo');
404   - $serieDTO = new SerieDTO();
405   - $serieDTO->retTodos();
406   - $serieRN = new SerieRN();
407   -
408   - $serieDTO->setNumIdSerie(null);
409   - $serieDTO->setNumIdGrupoSerie($grupoSerieDTO->getNumIdGrupoSerie());
410   - $serieDTO->setStrStaNumeracao(SerieRN::$TN_SEM_NUMERACAO);
411   - $serieDTO->setStrStaAplicabilidade(SerieRN::$TA_INTERNO);
412   - $serieDTO->setNumIdModeloEdoc(null);
413   - $serieDTO->setNumIdModelo($modeloDTO->getNumIdModelo());
414   - $serieDTO->setStrNome('Recibo Eletrônico de Protocolo');
415   - $serieDTO->setStrDescricao('Utilizado para a geração automática do Recibo Eletrônico de Protocolo nos Peticionamentos Eletrônicos realizados por Usuário Externo diretamente no Acesso Externo do SEI.');
416   - $serieDTO->setStrSinInteressado('S');
417   - $serieDTO->setStrSinDestinatario('N');
418   - $serieDTO->setStrSinAssinaturaPublicacao('S');
419   - $serieDTO->setStrSinInterno('S');
420   - $serieDTO->setStrSinAtivo('S');
421   - $serieDTO->setArrObjRelSerieAssuntoDTO(array());
422   - $serieDTO->setArrObjRelSerieVeiculoPublicacaoDTO(array());
423   -
424   - //adicoes SEIv3
425   - $serieDTO->setNumIdTipoFormulario(null);
426   - $serieDTO->setArrObjSerieRestricaoDTO(array());
427   -
428   - $serieDTO = $serieRN->cadastrarRN0642($serieDTO);
429   -
430   - $this->logar('ATUALIZANDO INFRA_PARAMETRO (ID_SERIE_RECIBO_MODULO_PETICIONAMENTO)');
431   - $nomeParamIdSerie = 'ID_SERIE_RECIBO_MODULO_PETICIONAMENTO';
432   - BancoSEI::getInstance()->executarSql('INSERT INTO infra_parametro ( valor, nome ) VALUES (\'' . $serieDTO->getNumIdSerie() . '\' , \'' . $nomeParamIdSerie . '\' ) ');
433   -
434   - //Atualizando parametro para controlar versao do modulo
435   - $this->logar('ATUALIZANDO PARAMETRO ' . $this->nomeParametroModulo . ' NA TABELA infra_parametro PARA CONTROLAR A VERSÃO DO MÓDULO');
436   - BancoSEI::getInstance()->executarSql('UPDATE infra_parametro SET valor = \'1.0.3\' WHERE nome = \'' . $this->nomeParametroModulo . '\' ');
437   -
438   - } catch (Exception $e) {
439   - $this->logar($e->getTraceAsString());
440   - print_r($e);
441   - die();
442   - }
443   -
444   - }
445   -
446   - //Contem atualizações da versao 0.0.2
447   - protected function instalarv002()
448   - {
449   -
450   - $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance());
451   - $this->logar('EXECUTANDO A INSTALACAO DA VERSAO 0.0.2 DO MODULO ' . $this->nomeDesteModulo . ' NA BASE DO SEI');
452   - $this->logar('CRIANDO A TABELA md_pet_usu_externo_menu E SUA sequence');
453   -
454   - BancoSEI::getInstance()->executarSql('CREATE TABLE md_pet_usu_externo_menu( id_md_pet_usu_externo_menu ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
455   - id_conjunto_estilos ' . $objInfraMetaBD->tipoNumero() . ' NULL ,
456   - nome ' . $objInfraMetaBD->tipoTextoVariavel(30) . ' NOT NULL ,
457   - tipo ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NOT NULL ,
458   - url ' . $objInfraMetaBD->tipoTextoVariavel(2083) . ' NULL ,
459   - conteudo_html ' . $objInfraMetaBD->tipoTextoGrande() . ' NULL,
460   - sin_ativo ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NOT NULL ) ');
461   -
462   - $objInfraMetaBD->adicionarChavePrimaria('md_pet_usu_externo_menu', 'pk_md_pet_usu_externo_menu', array('id_md_pet_usu_externo_menu'));
463   -
464   - $objInfraMetaBD->adicionarChaveEstrangeira('fk_md_pet_menu_cj_est_01',
465   - 'md_pet_usu_externo_menu',
466   - array('id_conjunto_estilos'),
467   - 'conjunto_estilos', array('id_conjunto_estilos'));
468   -
469   - if (BancoSEI::getInstance() instanceof InfraMySql) {
470   - BancoSEI::getInstance()->executarSql('create table seq_md_pet_usu_externo_menu (id bigint not null primary key AUTO_INCREMENT, campo char(1) null) AUTO_INCREMENT = 1');
471   - } else if (BancoSEI::getInstance() instanceof InfraSqlServer) {
472   - BancoSEI::getInstance()->executarSql('create table seq_md_pet_usu_externo_menu (id bigint identity(1,1), campo char(1) null)');
473   - } else if (BancoSEI::getInstance() instanceof InfraOracle) {
474   - BancoSEI::getInstance()->criarSequencialNativa('seq_md_pet_usu_externo_menu', 1);
475   - }
476   -
477   - //INSERCAO DE DOIS NOVOS MODELOS DE EMAIL NO MENU E-MAILS DO SISTEMA
478   - $this->logar('INSERINDO EMAILS MD_PET_CONFIRMACAO_PETICIONAMENTO_USUARIO_EXTERNO e MD_PET_ALERTA_PETICIONAMENTO_UNIDADES NA TABELA email_sistema');
479   -
480   - //Parametrizar Email de Alerta às Unidades
481   - $conteudo1 = " :: Este é um e-mail automático ::
482   -
483   -O Usuário Externo @nome_usuario_externo@ (@email_usuario_externo@) efetivou o Peticionamento Eletrônico do tipo @tipo_peticionamento@ (@tipo_processo@), no âmbito do processo nº @processo@, conforme disposto no Recibo Eletrônico de Protocolo SEI nº @documento_recibo_eletronico_de_protocolo@.
484   -
485   -O mencionado processo se encontra aberto em sua Unidade (@sigla_unidade_abertura_do_processo@). Entre no SEI e confira! Caso não seja de competência de sua Unidade, verifique se já está aberto na Unidade correta e, do contrário, envie-o para a Unidade competente para que seja devidamente tratado.
486   -
487   -
488   -@sigla_orgao@
489   -@descricao_orgao@
490   -@sitio_internet_orgao@
491   -
492   -ATENÇÃO: As informações contidas neste e-mail, incluindo seus anexos, podem ser restritas apenas à pessoa ou entidade para a qual foi endereçada. Se você não é o destinatário ou a pessoa responsável por encaminhar esta mensagem ao destinatário, você está, por meio desta, notificado que não deverá rever, retransmitir, imprimir, copiar, usar ou distribuir esta mensagem ou quaisquer anexos. Caso você tenha recebido esta mensagem por engano, por favor, contate o remetente imediatamente e em seguida apague esta mensagem.";
493   -
494   - $maxIdEmailSistemaUnidades = $this->retornarMaxIdEmailSistema();
495   -
496   - $insert1 = "INSERT INTO email_sistema
497   - (id_email_sistema,
498   - descricao,
499   - de,
500   - para,
501   - assunto,
502   - conteudo,
503   - sin_ativo,
504   - id_email_sistema_modulo
505   - )
506   - VALUES
507   - (" . $maxIdEmailSistemaUnidades . ",
508   - 'Peticionamento Eletrônico - Alerta às Unidades',
509   - '@sigla_sistema@ <@email_sistema@>',
510   - '@emails_unidade@',
511   - 'SEI Peticionamento Eletrônico - Processo nº @processo@',
512   - '" . $conteudo1 . "',
513   - 'S',
514   - 'MD_PET_ALERTA_PETICIONAMENTO_UNIDADES'
515   - )";
516   - BancoSEI::getInstance()->executarSql($insert1);
517   -
518   - //Parametrizar Email de Confirmação ao Usuario Externo
519   - $conteudo2 = " :: Este é um e-mail automático ::
520   -
521   -Prezado(a) @nome_usuario_externo@,
522   -
523   -Este e-mail confirma a realização do Peticionamento Eletrônico do tipo @tipo_peticionamento@ no SEI-@sigla_orgao@, no âmbito do processo nº @processo@, conforme disposto no Recibo Eletrônico de Protocolo SEI nº @documento_recibo_eletronico_de_protocolo@.
524   -
525   -Caso no futuro precise realizar novo peticionamento, sempre acesse a área destinada aos Usuários Externos no SEI-@sigla_orgao@ destacada em seu Portal na Internet ou acesse diretamente o link a seguir: @link_login_usuario_externo@
526   -
527   -
528   -@sigla_orgao@
529   -@descricao_orgao@
530   -@sitio_internet_orgao@
531   -
532   -ATENÇÃO: As informações contidas neste e-mail, incluindo seus anexos, podem ser restritas apenas à pessoa ou entidade para a qual foi endereçada. Se você não é o destinatário ou a pessoa responsável por encaminhar esta mensagem ao destinatário, você está, por meio desta, notificado que não deverá rever, retransmitir, imprimir, copiar, usar ou distribuir esta mensagem ou quaisquer anexos. Caso você tenha recebido esta mensagem por engano, por favor, contate o remetente imediatamente e em seguida apague esta mensagem.";
533   -
534   - $maxIdEmailSistemaUsuario = $this->retornarMaxIdEmailSistema();
535   -
536   - $insert2 = "INSERT INTO email_sistema
537   - (id_email_sistema,
538   - descricao,
539   - de,
540   - para,
541   - assunto,
542   - conteudo,
543   - sin_ativo,
544   - id_email_sistema_modulo
545   - )
546   - VALUES
547   - (" . $maxIdEmailSistemaUsuario . ",
548   - 'Peticionamento Eletrônico - Confirmação ao Usuário Externo',
549   - '@sigla_sistema@ <@email_sistema@>',
550   - '@email_usuario_externo@',
551   - 'SEI - Confirmação de Peticionamento Eletrônico (Processo nº @processo@)',
552   - '" . $conteudo2 . "',
553   - 'S',
554   - 'MD_PET_CONFIRMACAO_PETICIONAMENTO_USUARIO_EXTERNO'
555   - )";
556   -
557   - BancoSEI::getInstance()->executarSql($insert2);
558   -
559   - $this->logar('CRIANDO A TABELA md_pet_usu_ext_processo E SUA sequence');
560   -
561   - //Inserindo tabelas referentes ao Recibo Eletronico de Protocolo
562   - BancoSEI::getInstance()->executarSql('CREATE TABLE md_pet_usu_ext_processo (
563   - id_md_pet_usu_externo_processo ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
564   - id_md_pet_tipo_processo ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
565   - especificacao ' . $objInfraMetaBD->tipoTextoVariavel(50) . ' NULL,
566   - tipo_interessado ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NULL,
567   - id_usuario_externo ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
568   - data_hora_recebimento ' . $objInfraMetaBD->tipoDataHora() . ' NULL,
569   - ip_usuario ' . $objInfraMetaBD->tipoTextoVariavel(60) . ' NULL,
570   - numero_processo ' . $objInfraMetaBD->tipoTextoVariavel(40) . ' NULL,
571   - sin_ativo ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NOT NULL ) ');
572   -
573   - $objInfraMetaBD->adicionarChavePrimaria('md_pet_usu_ext_processo', 'pk_md_pet_usu_externo_processo', array('id_md_pet_usu_externo_processo'));
574   -
575   - if (BancoSEI::getInstance() instanceof InfraMySql) {
576   - BancoSEI::getInstance()->executarSql('create table seq_md_pet_usu_ext_processo (id bigint not null primary key AUTO_INCREMENT, campo char(1) null) AUTO_INCREMENT = 1');
577   - } else if (BancoSEI::getInstance() instanceof InfraSqlServer) {
578   - BancoSEI::getInstance()->executarSql('create table seq_md_pet_usu_ext_processo (id bigint identity(1,1), campo char(1) null)');
579   - } else if (BancoSEI::getInstance() instanceof InfraOracle) {
580   - BancoSEI::getInstance()->criarSequencialNativa('seq_md_pet_usu_ext_processo', 1);
581   - }
582   -
583   - //Tabelas relacionais com Tipos de Contatos permitidos para Cadastro e para Seleção
584   - $this->logar('CRIANDO A TABELA md_pet_rel_tp_ctx_contato');
585   -
586   - //veraao SEIv2.6 id_tipo_contexto_contato ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
587   - //versao SEIv3.0
588   - BancoSEI::getInstance()->executarSql('CREATE TABLE md_pet_rel_tp_ctx_contato (
589   - id_tipo_contato ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
590   - sin_cadastro_interessado ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NOT NULL,
591   - sin_selecao_interessado ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NOT NULL,
592   - id_md_pet_rel_tp_ctx_contato ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL
593   - ) ');
594   -
595   - $objInfraMetaBD->adicionarChavePrimaria('md_pet_rel_tp_ctx_contato', 'pk1_md_pet_rel_tp_ctx_cont', array('id_md_pet_rel_tp_ctx_contato'));
596   -
597   - //versao SEIv2.6
598   - //$objInfraMetaBD->adicionarChaveEstrangeira('fk_md_pet_rel_tp_ctx_cont_1','md_pet_rel_tp_ctx_contato',
599   - //array('id_tipo_contexto_contato'),
600   - //'tipo_contexto_contato',array('id_tipo_contexto_contato'));
601   -
602   - //versao SEIv3.0
603   - $objInfraMetaBD->adicionarChaveEstrangeira('fk_md_pet_rel_tp_ctx_cont_1', 'md_pet_rel_tp_ctx_contato',
604   - array('id_tipo_contato'),
605   - 'tipo_contato', array('id_tipo_contato'));
606   -
607   - if (BancoSEI::getInstance() instanceof InfraMySql) {
608   - BancoSEI::getInstance()->executarSql('create table seq_md_pet_rel_tp_ctx_contato (id bigint not null primary key AUTO_INCREMENT, campo char(1) null) AUTO_INCREMENT = 1');
609   - } else if (BancoSEI::getInstance() instanceof InfraSqlServer) {
610   - BancoSEI::getInstance()->executarSql('create table seq_md_pet_rel_tp_ctx_contato (id bigint identity(1,1), campo char(1) null)');
611   - } else if (BancoSEI::getInstance() instanceof InfraOracle) {
612   - BancoSEI::getInstance()->criarSequencialNativa('seq_md_pet_rel_tp_ctx_contato', 1);
613   - }
614   -
615   - //Tabelas referentes ao Recibo Eletronico de Protocolo
616   - $this->logar('CRIANDO A TABELA md_pet_rel_recibo_protoc E SUA sequence');
617   -
618   - BancoSEI::getInstance()->executarSql('CREATE TABLE md_pet_rel_recibo_protoc (
619   - id_md_pet_rel_recibo_protoc ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
620   - id_protocolo ' . $objInfraMetaBD->tipoNumeroGrande() . ' NOT NULL,
621   - id_protocolo_relacionado ' . $objInfraMetaBD->tipoNumeroGrande() . ' NULL,
622   - id_usuario ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
623   - ip_usuario ' . $objInfraMetaBD->tipoTextoVariavel(500) . ' NOT NULL,
624   - data_hora_recebimento_final ' . $objInfraMetaBD->tipoDataHora() . ' NULL,
625   - sin_ativo ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NOT NULL,
626   - sta_tipo_peticionamento ' . $objInfraMetaBD->tipoTextoVariavel(1) . ' NULL )');
627   -
628   - $objInfraMetaBD->adicionarChavePrimaria('md_pet_rel_recibo_protoc', 'pk1_md_pet_rel_recibo_protoc', array('id_md_pet_rel_recibo_protoc'));
629   -
630   - $objInfraMetaBD->adicionarChaveEstrangeira('fk1_md_pet_rel_recibo_protoc', 'md_pet_rel_recibo_protoc', array('id_protocolo'), 'protocolo', array('id_protocolo'));
631   - $objInfraMetaBD->adicionarChaveEstrangeira('fk2_md_pet_rel_recibo_protoc', 'md_pet_rel_recibo_protoc', array('id_usuario'), 'usuario', array('id_usuario'));
632   - $objInfraMetaBD->adicionarChaveEstrangeira('fk3_md_pet_rel_recibo_protoc', 'md_pet_rel_recibo_protoc', array('id_protocolo_relacionado'), 'protocolo', array('id_protocolo'));
633   -
634   - if (BancoSEI::getInstance() instanceof InfraMySql) {
635   - BancoSEI::getInstance()->executarSql('create table seq_md_pet_rel_recibo_protoc (id bigint not null primary key AUTO_INCREMENT, campo char(1) null) AUTO_INCREMENT = 1');
636   - } else if (BancoSEI::getInstance() instanceof InfraSqlServer) {
637   - BancoSEI::getInstance()->executarSql('create table seq_md_pet_rel_recibo_protoc (id bigint identity(1,1), campo char(1) null)');
638   - } else if (BancoSEI::getInstance() instanceof InfraOracle) {
639   - BancoSEI::getInstance()->criarSequencialNativa('seq_md_pet_rel_recibo_protoc', 1);
640   - }
641   -
642   - //Tabelas de recibo X documentos
643   - $this->logar('CRIANDO A TABELA md_pet_rel_recibo_docanexo E SUA sequence');
644   -
645   - BancoSEI::getInstance()->executarSql('CREATE TABLE md_pet_rel_recibo_docanexo (
646   - id_md_pet_rel_recibo_docanexo ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
647   - id_md_pet_rel_recibo_protoc ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
648   - formato_documento ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NULL,
649   - id_documento ' . $objInfraMetaBD->tipoNumeroGrande() . ' NULL,
650   - id_anexo ' . $objInfraMetaBD->tipoNumero() . ' NULL,
651   - classificacao_documento ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NOT NULL )');
652   -
653   - $objInfraMetaBD->adicionarChavePrimaria('md_pet_rel_recibo_docanexo', 'pk1_md_pet_rel_recibo_docanexo', array('id_md_pet_rel_recibo_docanexo'));
654   -
655   - $objInfraMetaBD->adicionarChaveEstrangeira('fk_pet_rel_recibo_docanexo_01', 'md_pet_rel_recibo_docanexo', array('id_md_pet_rel_recibo_protoc'), 'md_pet_rel_recibo_protoc', array('id_md_pet_rel_recibo_protoc'));
656   - $objInfraMetaBD->adicionarChaveEstrangeira('fk_pet_rel_recibo_docanexo_02', 'md_pet_rel_recibo_docanexo', array('id_documento'), 'documento', array('id_documento'));
657   - $objInfraMetaBD->adicionarChaveEstrangeira('fk_pet_rel_recibo_docanexo_03', 'md_pet_rel_recibo_docanexo', array('id_anexo'), 'anexo', array('id_anexo'));
658   -
659   - if (BancoSEI::getInstance() instanceof InfraMySql) {
660   - BancoSEI::getInstance()->executarSql('create table seq_md_pet_rel_recibo_docanexo (id bigint not null primary key AUTO_INCREMENT, campo char(1) null) AUTO_INCREMENT = 1');
661   - } else if (BancoSEI::getInstance() instanceof InfraSqlServer) {
662   - BancoSEI::getInstance()->executarSql('create table seq_md_pet_rel_recibo_docanexo (id bigint identity(1,1), campo char(1) null)');
663   - } else if (BancoSEI::getInstance() instanceof InfraOracle) {
664   - BancoSEI::getInstance()->criarSequencialNativa('seq_md_pet_rel_recibo_docanexo', 1);
665   - }
666   -
667   - //Atualizando parametro para controlar versao do modulo
668   - $this->logar('ATUALIZANDO PARAMETRO ' . $this->nomeParametroModulo . ' NA TABELA infra_parametro PARA CONTROLAR A VERSÃO DO MÓDULO');
669   - BancoSEI::getInstance()->executarSql('UPDATE infra_parametro SET valor = \'0.0.2\' WHERE nome = \'' . $this->nomeParametroModulo . '\' ');
670   -
671   - }
672   -
673   - //Contem atualizações da versao 0.0.1
674   - protected function instalarv001()
675   - {
676   -
677   - $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance());
678   -
679   - $this->logar('EXECUTANDO A INSTALACAO DA VERSAO 0.0.1 DO MODULO ' . $this->nomeDesteModulo . ' NA BASE DO SEI');
680   - $this->logar('CRIANDO A TABELA md_pet_tipo_processo E SUA sequence');
681   -
682   - BancoSEI::getInstance()->executarSql('CREATE TABLE md_pet_tipo_processo( id_md_pet_tipo_processo ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
683   - id_tipo_procedimento ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL ,
684   - id_unidade ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL ,
685   - id_serie ' . $objInfraMetaBD->tipoNumero() . ' NULL , '
686   -
687   - . 'id_hipotese_legal ' . $objInfraMetaBD->tipoNumero() . ' NULL ,
688   - orientacoes ' . $objInfraMetaBD->tipoTextoVariavel(500) . ' NOT NULL,
689   - sta_nivel_acesso ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NULL,
690   - sin_ii_proprio_usuario_externo ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NULL,
691   - sin_ii_indicacao_direta ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NULL,
692   - sin_ii_indic_direta_cpf_cnpj ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NULL,
693   - sin_ii_indic_direta_contato ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NULL,
694   - sin_na_usuario_externo ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NULL,
695   - sin_na_padrao ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NULL,
696   - sin_doc_gerado ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NULL,
697   - sin_doc_externo ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NULL,
698   - sin_ativo ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NOT NULL ) ');
699   -
700   - $objInfraMetaBD->adicionarChavePrimaria('md_pet_tipo_processo', 'pk_md_pet_tipo_processo', array('id_md_pet_tipo_processo'));
701   - $objInfraMetaBD->adicionarChaveEstrangeira('fk_pet_tp_proc_tipo_proc_01', 'md_pet_tipo_processo', array('id_tipo_procedimento'), 'tipo_procedimento', array('id_tipo_procedimento'));
702   - $objInfraMetaBD->adicionarChaveEstrangeira('fk_pet_tp_proc_unidade_02', 'md_pet_tipo_processo', array('id_unidade'), 'unidade', array('id_unidade'));
703   - $objInfraMetaBD->adicionarChaveEstrangeira('fk_pet_tp_proc_serie_03', 'md_pet_tipo_processo', array('id_serie'), 'serie', array('id_serie'));
704   - $objInfraMetaBD->adicionarChaveEstrangeira('fk_pet_tp_proc_hip_legal_04', 'md_pet_tipo_processo', array('id_hipotese_legal'), 'hipotese_legal', array('id_hipotese_legal'));
705   -
706   - if (BancoSEI::getInstance() instanceof InfraMySql) {
707   - BancoSEI::getInstance()->executarSql('create table seq_md_pet_tipo_processo (id bigint not null primary key AUTO_INCREMENT, campo char(1) null) AUTO_INCREMENT = 1');
708   - } else if (BancoSEI::getInstance() instanceof InfraSqlServer) {
709   - BancoSEI::getInstance()->executarSql('create table seq_md_pet_tipo_processo (id bigint identity(1,1), campo char(1) null)');
710   - } else if (BancoSEI::getInstance() instanceof InfraOracle) {
711   - BancoSEI::getInstance()->criarSequencialNativa('seq_md_pet_tipo_processo', 1);
712   - }
713   -
714   - $this->logar('CRIANDO A TABELA md_pet_rel_tp_processo_serie');
715   -
716   - BancoSEI::getInstance()->executarSql('CREATE TABLE md_pet_rel_tp_processo_serie (
717   - id_md_pet_tipo_processo ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
718   - id_serie ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL)');
719   -
720   - $objInfraMetaBD->adicionarChavePrimaria('md_pet_rel_tp_processo_serie', 'pk1_md_pet_rel_tp_proc_serie', array('id_md_pet_tipo_processo', 'id_serie'));
721   - $objInfraMetaBD->adicionarChaveEstrangeira('fk1_md_pet_rel_tp_proc_serie', 'md_pet_rel_tp_processo_serie', array('id_md_pet_tipo_processo'), 'md_pet_tipo_processo', array('id_md_pet_tipo_processo'));
722   - $objInfraMetaBD->adicionarChaveEstrangeira('fk2_md_pet_rel_tp_proc_serie', 'md_pet_rel_tp_processo_serie', array('id_serie'), 'serie', array('id_serie'));
723   -
724   - $this->logar('CRIANDO A TABELA md_pet_tp_processo_orientacoes');
725   -
726   - BancoSEI::getInstance()->executarSql('CREATE TABLE md_pet_tp_processo_orientacoes (
727   - id_md_pet_tp_proc_orientacoes ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
728   - id_conjunto_estilos ' . $objInfraMetaBD->tipoNumero() . ' NULL,
729   - orientacoes_gerais ' . $objInfraMetaBD->tipoTextoGrande() . ' NOT NULL )');
730   -
731   - $objInfraMetaBD->adicionarChavePrimaria('md_pet_tp_processo_orientacoes', 'pk_md_pet_tp_proc_orient', array('id_md_pet_tp_proc_orientacoes'));
732   - $objInfraMetaBD->adicionarChaveEstrangeira('fk_md_pet_tp_proc_or_cj_est', 'md_pet_tp_processo_orientacoes', array('id_conjunto_estilos'), 'conjunto_estilos', array('id_conjunto_estilos'));
733   -
734   - $this->logar('CRIANDO A TABELA md_pet_ext_arquivo_perm E SUA sequence');
735   -
736   - BancoSEI::getInstance()->executarSql('CREATE TABLE md_pet_ext_arquivo_perm (
737   - id_md_pet_ext_arquivo_perm ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
738   - id_arquivo_extensao ' . $objInfraMetaBD->tipoNumero() . ' NULL ,
739   - sin_principal ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NOT NULL,
740   - sin_ativo ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NOT NULL )');
741   -
742   - $objInfraMetaBD->adicionarChavePrimaria('md_pet_ext_arquivo_perm', 'pk_md_pet_ext_arquivo_perm', array('id_md_pet_ext_arquivo_perm'));
743   - $objInfraMetaBD->adicionarChaveEstrangeira('fk1_md_pet_ext_arquivo_perm', 'md_pet_ext_arquivo_perm', array('id_arquivo_extensao'), 'arquivo_extensao', array('id_arquivo_extensao'));
744   -
745   - if (BancoSEI::getInstance() instanceof InfraMySql) {
746   - BancoSEI::getInstance()->executarSql('create table seq_md_pet_ext_arquivo_perm (id bigint not null primary key AUTO_INCREMENT, campo char(1) null) AUTO_INCREMENT = 1');
747   - } else if (BancoSEI::getInstance() instanceof InfraSqlServer) {
748   - BancoSEI::getInstance()->executarSql('create table seq_md_pet_ext_arquivo_perm (id bigint identity(1,1), campo char(1) null)');
749   - } else if (BancoSEI::getInstance() instanceof InfraOracle) {
750   - BancoSEI::getInstance()->criarSequencialNativa('seq_md_pet_ext_arquivo_perm', 1);
751   - }
752   -
753   - $this->logar('CRIANDO A TABELA md_pet_tamanho_arquivo');
754   -
755   - BancoSEI::getInstance()->executarSql('CREATE TABLE md_pet_tamanho_arquivo (
756   - id_md_pet_tamanho_arquivo ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
757   - valor_doc_principal ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
758   - valor_doc_complementar ' . $objInfraMetaBD->tipoNumero() . ' NULL,
759   - sin_ativo ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NOT NULL ) ');
760   -
761   - $objInfraMetaBD->adicionarChavePrimaria('md_pet_tamanho_arquivo', 'pk_md_pet_tamanho_arquivo', array('id_md_pet_tamanho_arquivo'));
762   -
763   - $objMdPetTamanhoArquivoDTO = new MdPetTamanhoArquivoDTO();
764   - $objMdPetTamanhoArquivoRN = new MdPetTamanhoArquivoRN();
765   - $objMdPetTamanhoArquivoDTO->retTodos();
766   - $objMdPetTamanhoArquivoDTO->setNumValorDocPrincipal('5');
767   - $objMdPetTamanhoArquivoDTO->setNumValorDocComplementar('10');
768   - $objMdPetTamanhoArquivoDTO->setNumIdTamanhoArquivo(MdPetTamanhoArquivoRN::$ID_FIXO_TAMANHO_ARQUIVO);
769   - $objMdPetTamanhoArquivoDTO->setStrSinAtivo('S');
770   - $objMdPetTamanhoArquivoRN->cadastrar($objMdPetTamanhoArquivoDTO);
771   -
772   - $this->logar('CRIANDO A TABELA md_pet_indisponibilidade E SUA sequence');
773   -
774   - BancoSEI::getInstance()->executarSql('CREATE TABLE md_pet_indisponibilidade (
775   - id_md_pet_indisponibilidade ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
776   - dth_inicio ' . $objInfraMetaBD->tipoDataHora() . ' NOT NULL,
777   - dth_fim ' . $objInfraMetaBD->tipoDataHora() . ' NOT NULL,
778   - resumo_indisponibilidade ' . $objInfraMetaBD->tipoTextoVariavel(500) . ' NULL,
779   - sin_prorrogacao ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NOT NULL,
780   - sin_ativo ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NOT NULL ) ');
781   -
782   - $objInfraMetaBD->adicionarChavePrimaria('md_pet_indisponibilidade', 'pk_md_pet_indisponibilidade', array('id_md_pet_indisponibilidade'));
783   -
784   - if (BancoSEI::getInstance() instanceof InfraMySql) {
785   - BancoSEI::getInstance()->executarSql('create table seq_md_pet_indisponibilidade (id bigint not null primary key AUTO_INCREMENT, campo char(1) null) AUTO_INCREMENT = 1');
786   - } else if (BancoSEI::getInstance() instanceof InfraSqlServer) {
787   - BancoSEI::getInstance()->executarSql('create table seq_md_pet_indisponibilidade (id bigint identity(1,1), campo char(1) null)');
788   - } else if (BancoSEI::getInstance() instanceof InfraOracle) {
789   - BancoSEI::getInstance()->criarSequencialNativa('seq_md_pet_indisponibilidade', 1);
790   - }
791   -
792   - $this->logar('CRIANDO A TABELA md_pet_indisp_anexo E SUA sequence');
793   -
794   - BancoSEI::getInstance()->executarSql('CREATE TABLE md_pet_indisp_anexo (
795   - id_md_pet_anexo ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
796   - id_md_pet_indisponibilidade ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
797   - id_unidade ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
798   - id_usuario ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
799   - dth_inclusao ' . $objInfraMetaBD->tipoDataHora() . ' NOT NULL,
800   - nome ' . $objInfraMetaBD->tipoTextoVariavel(255) . ' NOT NULL,
801   - tamanho ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
802   - sin_ativo ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NOT NULL,
803   - hash ' . $objInfraMetaBD->tipoTextoFixo(32) . ' NOT NULL ) ');
804   -
805   - $objInfraMetaBD->adicionarChavePrimaria('md_pet_indisp_anexo', 'pk_pet_indisponibilidade_anexo', array('id_md_pet_anexo'));
806   - $objInfraMetaBD->adicionarChaveEstrangeira('fk_md_pet_indisp_anexo_01', 'md_pet_indisp_anexo', array('id_md_pet_indisponibilidade'), 'md_pet_indisponibilidade', array('id_md_pet_indisponibilidade'));
807   - $objInfraMetaBD->adicionarChaveEstrangeira('fk_md_pet_indisp_anexo_02', 'md_pet_indisp_anexo', array('id_unidade'), 'unidade', array('id_unidade'));
808   - $objInfraMetaBD->adicionarChaveEstrangeira('fk_md_pet_indisp_anexo_03', 'md_pet_indisp_anexo', array('id_usuario'), 'usuario', array('id_usuario'));
809   -
810   - if (BancoSEI::getInstance() instanceof InfraMySql) {
811   - BancoSEI::getInstance()->executarSql('create table seq_md_pet_indisp_anexo (id bigint not null primary key AUTO_INCREMENT, campo char(1) null) AUTO_INCREMENT = 1');
812   - } else if (BancoSEI::getInstance() instanceof InfraSqlServer) {
813   - BancoSEI::getInstance()->executarSql('create table seq_md_pet_indisp_anexo (id bigint identity(1,1), campo char(1) null)');
814   - } else if (BancoSEI::getInstance() instanceof InfraOracle) {
815   - BancoSEI::getInstance()->criarSequencialNativa('seq_md_pet_indisp_anexo', 1);
816   - }
817   -
818   - //Adicionando parametro para controlar versao do modulo
819   - $this->logar('ADICIONANDO PARAMETRO ' . $this->nomeParametroModulo . ' NA TABELA infra_parametro PARA CONTROLAR A VERSÃO DO MÓDULO');
820   - BancoSEI::getInstance()->executarSql('INSERT INTO infra_parametro (valor, nome ) VALUES( \'0.0.1\', \'' . $this->nomeParametroModulo . '\' )');
821   - }
822   -
823   - protected function atualizarVersaoConectado()
824   - {
825   -
826   - try {
827   - $this->inicializar('INICIANDO ATUALIZACAO DO MODULO ' . $this->nomeDesteModulo . ' NO SEI VERSAO ' . SEI_VERSAO);
828   -
829   - //testando versao do framework
830   - $numVersaoInfraRequerida = '1.385';
831   - $versaoInfraFormatada = (int) str_replace('.','', VERSAO_INFRA);
832   - $versaoInfraReqFormatada = (int) str_replace('.','', $numVersaoInfraRequerida);
833   -
834   - if ($versaoInfraFormatada < $versaoInfraReqFormatada){
835   - $this->finalizar('VERSAO DO FRAMEWORK PHP INCOMPATIVEL (VERSAO ATUAL '.VERSAO_INFRA.', SENDO REQUERIDA VERSAO IGUAL OU SUPERIOR A '.$numVersaoInfraRequerida.')',true);
836   - }
837   -
838   - //checando BDs suportados
839   - if (!(BancoSEI::getInstance() instanceof InfraMySql) &&
840   - !(BancoSEI::getInstance() instanceof InfraSqlServer) &&
841   - !(BancoSEI::getInstance() instanceof InfraOracle)
842   - ) {
843   - $this->finalizar('BANCO DE DADOS NAO SUPORTADO: ' . get_parent_class(BancoSEI::getInstance()), true);
844   - }
845   -
846   - //checando permissoes na base de dados
847   - $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance());
848   -
849   - if (count($objInfraMetaBD->obterTabelas('sei_teste')) == 0) {
850   - BancoSEI::getInstance()->executarSql('CREATE TABLE sei_teste (id ' . $objInfraMetaBD->tipoNumero() . ' null)');
851   - }
852   -
853   - BancoSEI::getInstance()->executarSql('DROP TABLE sei_teste');
854   -
855   - $objInfraParametro = new InfraParametro(BancoSEI::getInstance());
856   -
857   - $strVersaoModuloPeticionamento = $objInfraParametro->getValor($this->nomeParametroModulo, false);
858   -
859   - //VERIFICANDO QUAL VERSAO DEVE SER INSTALADA NESTA EXECUCAO
860   - //nao tem nenhuma versao ainda, instalar todas
861   - if (InfraString::isBolVazia($strVersaoModuloPeticionamento)) {
862   - $this->instalarv001();
863   - $this->instalarv002();
864   - $this->instalarv100();
865   - $this->instalarv104();
866   - $this->instalarv110();
867   - $this->logar('ATUALIZAÇÔES DA VERSÃO ' . $this->versaoAtualDesteModulo . ' DO MODULO ' . $this->nomeDesteModulo . ' INSTALADAS COM SUCESSO NA BASE DO SEI');
868   - $this->finalizar('FIM', false);
869   - } //se ja tem 001 instala apenas 002, 100, 104 e 110
870   - else if ($strVersaoModuloPeticionamento == '0.0.1') {
871   - $this->instalarv002();
872   - $this->instalarv100();
873   - $this->instalarv104();
874   - $this->instalarv110();
875   - $this->logar('ATUALIZAÇÔES DA VERSÃO ' . $this->versaoAtualDesteModulo . ' DO MÓDULO ' . $this->nomeDesteModulo . ' INSTALADAS COM SUCESSO NA BASE DO SEI');
876   - $this->finalizar('FIM', false);
877   - } //se ja tem 002 instala apenas 100, 104, 110
878   - else if ($strVersaoModuloPeticionamento == '0.0.2') {
879   - $this->instalarv100();
880   - $this->instalarv104();
881   - $this->instalarv110();
882   - $this->logar('ATUALIZAÇÔES DA VERSÃO ' . $this->versaoAtualDesteModulo . ' DO MÓDULO ' . $this->nomeDesteModulo . ' INSTALADAS COM SUCESSO NA BASE DO SEI');
883   - $this->finalizar('FIM', false);
884   - } //se ja tem 100 ou 103 instala apenas a 104 e 110
885   - else if (in_array($strVersaoModuloPeticionamento, array('1.0.0', '1.0.3'))) {
886   - $this->instalarv104();
887   - $this->instalarv110();
888   - $this->logar('ATUALIZAÇÔES DA VERSÃO ' . $this->versaoAtualDesteModulo . ' DO MÓDULO ' . $this->nomeDesteModulo . ' INSTALADAS COM SUCESSO NA BASE DO SEI');
889   - $this->finalizar('FIM', false);
890   - } //se ja tem 104 apenas a 110
891   - else if ($strVersaoModuloPeticionamento == '1.0.4') {
892   - $this->instalarv110();
893   - $this->logar('ATUALIZAÇÔES DA VERSÃO ' . $this->versaoAtualDesteModulo . ' DO MÓDULO ' . $this->nomeDesteModulo . ' INSTALADAS COM SUCESSO NA BASE DO SEI');
894   - $this->finalizar('FIM', false);
895   - }
896   - else if ($strVersaoModuloPeticionamento == '1.1.0') {
897   - $this->logar('A VERSAO MAIS ATUAL DO MODULO ' . $this->nomeDesteModulo . ' (v ' . $this->versaoAtualDesteModulo . ') JA ESTA INSTALADA.');
898   - $this->finalizar('FIM', false);
899   - }
900   -
901   - InfraDebug::getInstance()->setBolLigado(false);
902   - InfraDebug::getInstance()->setBolDebugInfra(false);
903   - InfraDebug::getInstance()->setBolEcho(false);
904   -
905   - } catch (Exception $e) {
906   - InfraDebug::getInstance()->setBolLigado(true);
907   - InfraDebug::getInstance()->setBolDebugInfra(true);
908   - InfraDebug::getInstance()->setBolEcho(true);
909   - $this->logar($e->getTraceAsString());
910   - $this->finalizar('FIM', true);
911   - print_r($e);
912   - die;
913   - throw new InfraException('Erro atualizando versão.', $e);
914   - }
915   -
916   - }
917   -
918   - private function existeIdEmailSistemaPecitionamento()
919   - {
920   - $this->logar('VERIFICANDO A EXISTENCIA DE MODELOS DE EMAIL PARA PETICIONAMENTO');
921   - $sql = "select
922   - id_email_sistema
923   - from email_sistema
924   - where
925   - id_email_sistema in (3001,3002)";
926   - $rs = BancoSEI::getInstance()->consultarSql($sql);
927   - return (count($rs) > 0) ? true : false;
928   - }
929   -
930   - private function atualizarIdEmailSistemaAlertaPecitionamento()
931   - {
932   - $this->logar('ATUALIZANDO O IDENTIFICADOR DO MODELO DE EMAIL PARA PETICIONAMENTO DA CONSTANTE MD_PET_ALERTA_PETICIONAMENTO_UNIDADES');
933   - $idEmailSistema = $this->retornarMaxIdEmailSistema();
934   - BancoSEI::getInstance()->executarSql('update email_sistema SET id_email_sistema = ' . $idEmailSistema . ', id_email_sistema_modulo = \'MD_PET_ALERTA_PETICIONAMENTO_UNIDADES\' WHERE id_email_sistema = 3002');
935   - }
936   -
937   - private function atualizarIdEmailSistemaConfirmacaoPeticionamento()
938   - {
939   - $this->logar('ATUALIZANDO O IDENTIFICADOR DO MODELO DE EMAIL PARA PETICIONAMENTO DA CONSTANTE MD_PET_CONFIRMACAO_PETICIONAMENTO_USUARIO_EXTERNO');
940   - $idEmailSistema = $this->retornarMaxIdEmailSistema();
941   - BancoSEI::getInstance()->executarSql('update email_sistema SET id_email_sistema = ' . $idEmailSistema . ', id_email_sistema_modulo = \'MD_PET_CONFIRMACAO_PETICIONAMENTO_USUARIO_EXTERNO\' WHERE id_email_sistema = 3001');
942   - }
943   -
944   - private function retornarMaxIdEmailSistema()
945   - {
946   - $this->logar('BUSCANDO O PROXIMO ID DISPONIVEL NA TABELA EMAIL_SISTEMA ');
947   - $sql = "select id_email_sistema from email_sistema where id_email_sistema > 999";
948   - $rs = BancoSEI::getInstance()->consultarSql($sql);
949   -
950   - $maxIdEmailSistema = (1000 + count($rs));
951   - $indiceAnterior = 0;
952   - foreach ($rs as $i => $r) {
953   - if ($i == 0 && $r['id_email_sistema'] > 1000) {
954   - $maxIdEmailSistema = 1000;
955   - break;
956   - }
957   -
958   - if (($r['id_email_sistema'] - $rs[$indiceAnterior]['id_email_sistema']) > 1) {
959   - $maxIdEmailSistema = $rs[$indiceAnterior]['id_email_sistema'] + 1;
960   - break;
961   - }
962   - $indiceAnterior = $i;
963   - }
964   - return $maxIdEmailSistema;
965   - }
966   -
967   -}
968   -
969   -?>
970 0 \ No newline at end of file
sei/web/modulos/peticionamento/rn/MdPetAtualizadorSeiRN.php 0 → 100644
... ... @@ -0,0 +1,969 @@
  1 +<?
  2 +/**
  3 + * ANATEL
  4 + *
  5 + * 21/05/2016 - criado por marcelo.bezerra - CAST
  6 + *
  7 + */
  8 +
  9 +require_once dirname(__FILE__) . '/../../../SEI.php';
  10 +
  11 +class MdPetAtualizadorSeiRN extends InfraRN
  12 +{
  13 +
  14 + private $numSeg = 0;
  15 + private $versaoAtualDesteModulo = '1.1.0';
  16 + private $nomeDesteModulo = 'PETICIONAMENTO E INTIMAÇÃO ELETRÔNICOS';
  17 + private $nomeParametroModulo = 'VERSAO_MODULO_PETICIONAMENTO';
  18 + private $historicoVersoes = array('0.0.1', '0.0.2', '1.0.3', '1.0.4', '1.1.0');
  19 +
  20 + public function __construct()
  21 + {
  22 + parent::__construct();
  23 + }
  24 +
  25 + protected function inicializarObjInfraIBanco()
  26 + {
  27 + return BancoSEI::getInstance();
  28 + }
  29 +
  30 + private function inicializar($strTitulo)
  31 + {
  32 +
  33 + ini_set('max_execution_time', '0');
  34 + ini_set('memory_limit', '-1');
  35 +
  36 + try {
  37 + @ini_set('zlib.output_compression', '0');
  38 + @ini_set('implicit_flush', '1');
  39 + } catch (Exception $e) {
  40 + }
  41 +
  42 + ob_implicit_flush();
  43 +
  44 + InfraDebug::getInstance()->setBolLigado(true);
  45 + InfraDebug::getInstance()->setBolDebugInfra(true);
  46 + InfraDebug::getInstance()->setBolEcho(true);
  47 + InfraDebug::getInstance()->limpar();
  48 +
  49 + $this->numSeg = InfraUtil::verificarTempoProcessamento();
  50 +
  51 + $this->logar($strTitulo);
  52 + }
  53 +
  54 + private function logar($strMsg)
  55 + {
  56 + InfraDebug::getInstance()->gravar($strMsg);
  57 + flush();
  58 + }
  59 +
  60 + private function finalizar($strMsg = null, $bolErro)
  61 + {
  62 +
  63 + if (!$bolErro) {
  64 + $this->numSeg = InfraUtil::verificarTempoProcessamento($this->numSeg);
  65 + $this->logar('TEMPO TOTAL DE EXECUÇÃO: ' . $this->numSeg . ' s');
  66 + } else {
  67 + $strMsg = 'ERRO: ' . $strMsg;
  68 + }
  69 +
  70 + if ($strMsg != null) {
  71 + $this->logar($strMsg);
  72 + }
  73 +
  74 + InfraDebug::getInstance()->setBolLigado(false);
  75 + InfraDebug::getInstance()->setBolDebugInfra(false);
  76 + InfraDebug::getInstance()->setBolEcho(false);
  77 + $this->numSeg = 0;
  78 + die;
  79 + }
  80 +
  81 + //Contem atualizações da versao 1.1.0 (Intercorrente)
  82 + protected function instalarv110()
  83 + {
  84 + try {
  85 +
  86 + $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance());
  87 + $this->logar('EXECUTANDO A INSTALACAO DA VERSAO 1.1.0 DO MODULO ' . $this->nomeDesteModulo . ' NA BASE DO SEI');
  88 +
  89 + // INICIO 7048
  90 + //Cria a tabela de tipo de resposta
  91 + BancoSEI::getInstance()->executarSql('CREATE TABLE md_pet_criterio (
  92 + id_md_pet_criterio ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
  93 + sin_ativo ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NOT NULL,
  94 + sin_criterio_padrao ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NOT NULL,
  95 + sta_nivel_acesso ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NULL,
  96 + sta_tipo_nivel_acesso ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NULL,
  97 + id_hipotese_legal ' . $objInfraMetaBD->tipoNumero() . ' NULL,
  98 + id_tipo_procedimento ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL
  99 + )');
  100 +
  101 + $objInfraMetaBD->adicionarChavePrimaria('md_pet_criterio','pk_md_pet_criterio',array('id_md_pet_criterio'));
  102 +
  103 + $objInfraMetaBD->adicionarChaveEstrangeira('fk1_md_pet_criterio', 'md_pet_criterio', array('id_hipotese_legal'), 'hipotese_legal', array('id_hipotese_legal'));
  104 + $objInfraMetaBD->adicionarChaveEstrangeira('fk2_md_pet_criterio', 'md_pet_criterio', array('id_tipo_procedimento'), 'tipo_procedimento', array('id_tipo_procedimento'));
  105 +
  106 + if (BancoSEI::getInstance() instanceof InfraMySql) {
  107 + BancoSEI::getInstance()->executarSql('create table seq_md_pet_criterio (id bigint not null primary key AUTO_INCREMENT, campo char(1) null) AUTO_INCREMENT = 1');
  108 + } else if (BancoSEI::getInstance() instanceof InfraSqlServer) {
  109 + BancoSEI::getInstance()->executarSql('create table seq_md_pet_criterio (id bigint identity(1,1), campo char(1) null)');
  110 + } else if (BancoSEI::getInstance() instanceof InfraOracle) {
  111 + BancoSEI::getInstance()->criarSequencialNativa('seq_md_pet_criterio', 1);
  112 + }
  113 + // FIM 7048
  114 +
  115 + //Criando campo md_pet_rel_recibo_protoc.id_protocolo_relacionado caso ainda nao exista
  116 + $coluna = $objInfraMetaBD->obterColunasTabela('md_pet_rel_recibo_protoc', 'id_protocolo_relacionado');
  117 +
  118 + if( $coluna == null || !is_array( $coluna ) ){
  119 +
  120 + $objInfraMetaBD->adicionarColuna('md_pet_rel_recibo_protoc', 'id_protocolo_relacionado', '' . $objInfraMetaBD->tipoNumeroGrande() , 'NULL');
  121 +
  122 + $objInfraMetaBD->adicionarChaveEstrangeira('fk5_md_pet_rel_recibo_protoc', 'md_pet_rel_recibo_protoc', array('id_protocolo_relacionado'), 'protocolo', array('id_protocolo'));
  123 +
  124 + }
  125 +
  126 + //coluna id_documento na tabela de recibo
  127 + $objInfraMetaBD->adicionarColuna('md_pet_rel_recibo_protoc', 'id_documento', '' . $objInfraMetaBD->tipoNumeroGrande() , 'NULL');
  128 + $objInfraMetaBD->adicionarChaveEstrangeira('fk6_md_pet_rel_recibo_protoc', 'md_pet_rel_recibo_protoc', array('id_documento'), 'documento', array('id_documento'));
  129 +
  130 + //Atualizando dados da tabela
  131 + $objInfraParametro = new InfraParametro(BancoSEI::getInstance());
  132 + $ret = $objInfraParametro->listarValores(array('ID_SERIE_RECIBO_MODULO_PETICIONAMENTO'), false);
  133 +
  134 + $arrObjInfraParametroDTO = NULL;
  135 + $idSeriePet = array_key_exists('ID_SERIE_RECIBO_MODULO_PETICIONAMENTO' , $ret) ? $ret['ID_SERIE_RECIBO_MODULO_PETICIONAMENTO'] : null;
  136 +
  137 + if($idSeriePet){
  138 + $arrObjDocumentDTO = array();
  139 +
  140 + $objDocumentoDTO = new DocumentoDTO();
  141 + $objDocumentoDTO->retDblIdDocumento();
  142 + $objDocumentoDTO->retDblIdProcedimento();
  143 + $objDocumentoDTO->setNumIdSerie($idSeriePet);
  144 + $objDocumentoRN = new DocumentoRN();
  145 + $countDoc = $objDocumentoRN->contarRN0007($objDocumentoDTO);
  146 +
  147 + if ($countDoc > 0) {
  148 + $arrObjDocumentDTO = $objDocumentoRN->listarRN0008($objDocumentoDTO);
  149 + foreach ($arrObjDocumentDTO as $objDocumentoDTO) {
  150 + $objMdPetReciboDTO = new MdPetReciboDTO();
  151 + $objMdPetReciboRN = new MdPetReciboRN();
  152 + $objMdPetReciboDTO->setNumIdProtocolo($objDocumentoDTO->getDblIdProcedimento());
  153 + $objMdPetReciboDTO->setDblIdDocumento($objDocumentoDTO->getDblIdDocumento());
  154 + $objMdPetReciboDTO->retNumIdReciboPeticionamento();
  155 + $arrObjMdPetReciboDTO = $objMdPetReciboRN->listar($objMdPetReciboDTO);
  156 +
  157 + foreach ($arrObjMdPetReciboDTO as $objDTO){
  158 + $objMdPetReciboRN->alterar($objDTO);
  159 + }
  160 + }
  161 + }
  162 +
  163 + }
  164 +
  165 +
  166 +
  167 +
  168 +
  169 + //Atualizando parametro para controlar versao do modulo
  170 + $this->logar('ATUALIZANDO PARAMETRO ' . $this->nomeParametroModulo . ' NA TABELA infra_parametro PARA CONTROLAR A VERSÃO DO MÓDULO');
  171 + BancoSEI::getInstance()->executarSql('UPDATE infra_parametro SET valor = \'1.1.0\' WHERE nome = \'' . $this->nomeParametroModulo . '\' ');
  172 +
  173 + } catch (Exception $e) {
  174 + $this->logar($e->getTraceAsString());
  175 + print_r($e);
  176 + die();
  177 + }
  178 + }
  179 +
  180 +//Contem atualizações da versao 1.0.4
  181 + protected function instalarv104()
  182 + {
  183 + try {
  184 +
  185 + $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance());
  186 + $this->logar('EXECUTANDO A INSTALACAO DA VERSAO 1.0.4 DO MODULO ' . $this->nomeDesteModulo . ' NA BASE DO SEI');
  187 +
  188 + //Caso exista a coluna na tabela a instalação é nova, então não é necessario executar a migração de dados
  189 + $colunasTabela = $objInfraMetaBD->obterColunasTabela('md_pet_rel_tp_ctx_contato', 'id_tipo_contato');
  190 + if (count($colunasTabela) <= 0 || $colunasTabela[0]['column_name'] != 'id_tipo_contato') {
  191 + $this->logar('ADICIONANDO A COLUNA id_tipo_contato NA TABELA md_pet_rel_tp_ctx_contato');
  192 + $objInfraMetaBD->adicionarColuna('md_pet_rel_tp_ctx_contato', 'id_tipo_contato', $objInfraMetaBD->tipoNumero(), 'NOT NULL');
  193 +
  194 + $this->logar('ATUALIZANDO OS REGISTROS DA TABELA md_pet_rel_tp_ctx_contato');
  195 + BancoSEI::getInstance()->executarSql('UPDATE md_pet_rel_tp_ctx_contato set id_tipo_contato = id_tipo_contexto_contato');
  196 +
  197 + $this->logar('EXCLUINDO A COLUNA id_tipo_contexto_contato DA TABELA md_pet_rel_tp_ctx_contato');
  198 + $objInfraMetaBD->excluirColuna('md_pet_rel_tp_ctx_contato', 'id_tipo_contexto_contato');
  199 + }
  200 +
  201 + if ($this->existeIdEmailSistemaPecitionamento()) {
  202 + $this->atualizarIdEmailSistemaAlertaPecitionamento();
  203 + $this->atualizarIdEmailSistemaConfirmacaoPeticionamento();
  204 + }
  205 +
  206 + //inclusao de nova tarja de assinatura customizada, para uso pelo modulo peticionamento em caso de documento nato-digital
  207 + $objTarjaAssinaturaDTO = new TarjaAssinaturaDTO();
  208 + $objTarjaAssinaturaDTO->setStrStaTarjaAssinatura( MdPetAssinaturaRN::$TT_ASSINATURA_SENHA_PETICIONAMENTO );
  209 +
  210 + $objTarjaAssinaturaDTO->setStrTexto('<hr style="margin: 0 0 4px 0;" /> <table> <tr> <td> @logo_assinatura@ </td> <td> <p style="margin:0;text-align: left; font-size:11pt;font-family: Calibri;">Documento assinado eletronicamente por <b>@nome_assinante@</b>, <b>@tratamento_assinante@</b>, em @data_assinatura@, às @hora_assinatura@, conforme horário oficial de Brasília, com fundamento no art. 6º, § 1º, do <a title="Acesse o Decreto" href="http://www.planalto.gov.br/ccivil_03/_Ato2015-2018/2015/Decreto/D8539.htm" target="_blank">Decreto nº 8.539, de 8 de outubro de 2015</a>.</p> </td> </tr> </table>');
  211 +
  212 + $objTarjaAssinaturaDTO->setStrLogo('iVBORw0KGgoAAAANSUhEUgAAAFkAAAA8CAMAAAA67OZ0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAADTtpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDQuMi4yLWMwNjMgNTMuMzUyNjI0LCAyMDA4LzA3LzMwLTE4OjEyOjE4ICAgICAgICAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6eG1wUmlnaHRzPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvcmlnaHRzLyIKICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgIHhtbG5zOklwdGM0eG1wQ29yZT0iaHR0cDovL2lwdGMub3JnL3N0ZC9JcHRjNHhtcENvcmUvMS4wL3htbG5zLyIKICAgeG1wUmlnaHRzOldlYlN0YXRlbWVudD0iIgogICBwaG90b3Nob3A6QXV0aG9yc1Bvc2l0aW9uPSIiPgogICA8ZGM6cmlnaHRzPgogICAgPHJkZjpBbHQ+CiAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ii8+CiAgICA8L3JkZjpBbHQ+CiAgIDwvZGM6cmlnaHRzPgogICA8ZGM6Y3JlYXRvcj4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGk+QWxiZXJ0byBCaWdhdHRpPC9yZGY6bGk+CiAgICA8L3JkZjpTZXE+CiAgIDwvZGM6Y3JlYXRvcj4KICAgPGRjOnRpdGxlPgogICAgPHJkZjpBbHQ+CiAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ii8+CiAgICA8L3JkZjpBbHQ+CiAgIDwvZGM6dGl0bGU+CiAgIDx4bXBSaWdodHM6VXNhZ2VUZXJtcz4KICAgIDxyZGY6QWx0PgogICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCIvPgogICAgPC9yZGY6QWx0PgogICA8L3htcFJpZ2h0czpVc2FnZVRlcm1zPgogICA8SXB0YzR4bXBDb3JlOkNyZWF0b3JDb250YWN0SW5mbwogICAgSXB0YzR4bXBDb3JlOkNpQWRyRXh0YWRyPSIiCiAgICBJcHRjNHhtcENvcmU6Q2lBZHJDaXR5PSIiCiAgICBJcHRjNHhtcENvcmU6Q2lBZHJSZWdpb249IiIKICAgIElwdGM0eG1wQ29yZTpDaUFkclBjb2RlPSIiCiAgICBJcHRjNHhtcENvcmU6Q2lBZHJDdHJ5PSIiCiAgICBJcHRjNHhtcENvcmU6Q2lUZWxXb3JrPSIiCiAgICBJcHRjNHhtcENvcmU6Q2lFbWFpbFdvcms9IiIKICAgIElwdGM0eG1wQ29yZTpDaVVybFdvcms9IiIvPgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+RO84nQAAAwBQTFRFamts+fn5mp6hc3Nz9fX1U1NTS0tKnaGk6unqzM3P7e3u8fHxuLm7/Pz8lZmc2dnZxcXGWlpavr29wsLCp6eniYmKhYaGZWZmkpaZ0dHS5eXlkZGSrq2utbW2XV1d4uHhfX1+sbGy1dXW3d3dqampgYGCjY2OyMnKYWJihYaIjY6RnZ2ejpGSra+xeHl7lZWVmJiYgoKFpKaptre5vb7Aurq8oaGikpSWmJufh4iKkZKVysrMtrq7ioyOdXZ4fn+ArrGywcLEzc7QiYqMt7W1/v/8mZqcxsbIpqqrZGFhztDSeXp7iIWGnJqalJKSf4CCg4B/amZmoaSm5+fmvLy6ys3OzMzL2tze3dzaa2hny8nH0M7NiYiGbG5v19jYWFVVcG5s2drcxMTD0dPUx8jJ/P79sbO1j46OmZWU1dfXhIKC1NLTd3h68fL0wsTGb3By+vf3YV1d2NjW7u7u6Ojpe3x9fHp54eLkxMLAvLq5/f39+vr63t7fXFtamZiW6urqzMnKwL+98PHvrKytq6qq7evpr62toKKkvr/BOzk42dvad3V06OjmpaSj5efnnZyblpWT/fz6ZWZo9/f3jYyKqquteXd47u3rhYSC5eTisbCueXh2qaimWlhXjImIY2Bfc3Bw////UFBP/v7+/v////7///3+g4SHaGlpYmNj8vPzZ2dn/vz9WFhYtbO0ztDPWltbbW9u/v7/xcPEiouLrayq4+Tms7S2VldX7/DyqKel+/z++Pj4+ff4cXBuuru7u7y+7+/vx8fH8/HysK+wXFxc/fv8s7OztrWzZWRio6Ohl5eZ1NTUZGRkraus2NbX4N/d0dDP3dzc9ff14ODg9/n4oaCg4eHf+/v76+vrQD4+7Ozs/f3/7evsRUJCvLy87vDtysvLXl9fzczNwsPDYGBgw7+/ysjJgH19gH9/29rbwMC/Tk1MlJCPoaCeX1tb6ufo4uPjx8fF5OPht7e3X15cuLe4tLKzn56f09TW1dXTYWJkh4eHZGJj3+Diq6urXLJJJAAAC8BJREFUeNqsmAtYE1cWgAcmJLwSwjMJAYxiQhIeITyEgCGiAioCaiqWaoCiFQVKtgWsJFRapEpFatuodetKHYaQkIiipZVWqqBQ64OqrduGuquVR1sDu62u69JdW/fOZCCJovjttyffl9yZ3PvfM2fOOffcC6UgJ1a5R1GeJI6OjvHx8TQgTCYzLiEsTCgU8qRSQcaN4VNsWWpsndep7u7u2NhY9+7UkpKSJFnqkApBIOTrufFgJDb2MUIQ4xLYAMnjSRf4+koEAoGupLcMdQtVRBs0JA3JImovpVKpUED6SAMCnZhLo1Dmrlzp8hhJxCQkJGRdGhA6nV5aWjrs7T08nJw8Ono6hD7aXZd2ml5ALygoGAb33QPvBs68ACsZIjXkAcBLmpH/RVC7H7xlaZ86qmTcgY47UsKbEW3LU4Mmx9tTJwWYGJFAeh4URXGc2/yUCqJTaGrLRlFi3khIAUMUCxl9Kjj4qFQo1WYeC27ie6KjSK+AMHIsuDu92qpq8wCK+P+6cdasGvRRM6G21yI9hJPdn+Z1vTCfJvZlNccIgQt6IIj2iZ0zjY+Q0SnfGvZ921EiMC645kKjxNOen06NTMaTdH5oklwhl8OHdyyhUWgJudOS+yG9HRl9RGWrzm/FKfRNHYZEWnyCdON0ZHa/Xv8kO9u9FJSlY3DNzclMmtD34rTkVr1xajKKpFgaVIcu9URkkKq7EFW3MEEiZk1L5hsfJqtfrP74lXK3LhTDqQy/r+uOTX7egIUVKbhKvmOGQ7dEKpaxpvN/Np/BsLdzWeJWkDMpi+reAv5NNftIsjjpEekXLgJ0bgUDapf2JIsFnIgj0+o8YkMGuQMtX8SkgbTpyGTSEcTkIuX6CsTcLJkyAlzmRvD1nR1lXhXcJNjl4fTxsBSO9Pfb6IwaFjG3UxxXrKDQHF9B0F+lAp5AOH5BnM5RyF5Gnk9vVbR3lMUmVcBHb05lDXwm4nbhYH/rJBmY1QWAKe65q+avX09CB1LFPMF4VZchWQxH6MdR834+1OZbFg0nKfQhdo5Dch0YcHYu7zFZ/Yk3yG+10blrHo3iGK4G/1JdUWoal6eLm4Hli25FEsSZcTVp0Nh5v+w4BBtbT9u4peFITF1dTMyN7ple8kkD8YL4fCv5mGZRPIWynhjRM0cs0bljHY9VySDo6OmP69sZTvfLZr6raA2iW5+/pjSKsvb34FWrqrZXsM0TobY7iD9iq3N4PLDyuhfxQTMWSHSSdSiJZHCokjIUrXdvw56tTX6uvXx9X9vwpM7Hopes2h7uHh14/LhIEiF0Jf7Y3TcyaGNndSITXDAD1oL/UVaWRCcIDZ8d1eATWgFBg1uD4c4RcpHrg3Z+Z97w5Bv7mFI3b3ag+73AwMAGXwFcSrWQO9oHrWTQ75M9NEdHmlAYdaRLlVYh0GUlgVXY2M+Ajur7onJhp0FA9ukMcsLJ+HM3r3WUht0mgixUnBTVRZA9bcmgc3k4M4FJCxNIujXrSnRiTokSLA16Bn8waGzcA27qI+9znUNuc3LyBp0t4b8yXrjiE2L4VhkcqrE0fduCgmysAeQT+oowaUKYQJecXcLlyETbx0NDIyNFIrZvmhkCZL9rqdedxsijk2QXmnROGUHew1FSSBPkwT47ncHK4UwPFUil4oQbHE4JJw3RdHVpcEGK9WN9ZG519vjs83OCJ1VxuSChlFmax/ZUKLdP6NzZ5/lIrnvh9rhOIpb0LigpgWfa+G0xoymILCt/KO7qhIK4UtYQVuzMT4AhHuEckjxPTxtrEM5IXVKhyxK4z1FEKGWzrOVAsbGpncypPrG2O61nYj6VSxxPKJX4+XFlsor0iJIkRUbPo2SAHPDH0qU6OV3HEbMS34WVUBa9vMvk0ONxcwC5aAR25pYvYQqSomoIdHXc9vmzWNnZiUNHbp6mh4TcPB9UgPvdfSc7skN0agzL7FEnzBKXSNxqeIPw0X6935ZQkS/EGEZYmM5+ueESiQJiEY/isSARxZ8UdbCULLf7A9TYtZ892ZCqE0jZPLFMXAIHHkNyZUFGqLU9z8mpiUz2QS7qgZ0lG1ekVwwGzSfywyrpOrwhj5L0GrCGf384npcIcny05dleEesEYhmHE6FMegC8R2Vm97e1tXViYPIu5Erbd+Q395bHQJ1kdg9R+ezwpWP2+0sql62IVYPprvID1FayI0FGetzHpTpAFqSmGfBnqykY58IKCL7FPvsVMkPkx/ZrMJBOZdZWEzlNtUNQipEN6RdmKSOBMujVwQdWMohnQmeE6hzMCkk8Eoy7vhYb3SU35+Z+Jce81ERyc6shqRCVxpqHPcSlKqwRKhNCoyYsjwXZkwMfrYhQrdam4kBtVyfU2jtXh+mMojWi/4Tj0VfVNwV5wp/BF6CabhSqrfUm+tln9lMT9Fxusgq/2Ws047/BbbU25HjacaK/CWO3oGhKi4n64zcqAnZIiw5EHp7QFEsXVCoB3wjiH7ea+0l/vK+8rcFhkhwfz7SsI2UiTuOlzxcWRbpd2VcYXDx+5nDGT2zDQObezKob3x34MGSraX7tzoLdmffG6wu/smi9sWS9BqWaTIj/SoMJ+50/5mOa9Od4moWM9Cz02r9JPpZhvpoPm3cG5LgeXJzh+aXmVOXBwtU/wzPG8x1q859dQ/7mtTs/LM50sEQAO4nH5nV0SDo6/Li3blVwRposRQ5OTqXFncW7/Xlh5smcr/curjS8nfcnUu1yZ/jtmk085HDm4qVvbArVhsLUXtjMLULdvsjIW2qw2OZqQ0eH732/fUXcW6Dk2Qune1mmtCNTh/NW716c0rOtafM7r3+w695y5/pxTdHu0Zw7t5a9AW/R7jK+tyUneFkm4nPyuYNFZyYqgoGBakxAVVBeLpdfI14HTqbR4nBrqH68viY/p3rpTwfunN/00vszR+T5W7r276aP7ftg2R8av/sh22nxq3Dwpkbko7w1efvcpq7iJ27h5AvMhHmW6V9beKRYQ194STMUkK3xH3JgVakuehxaXfmcBzJj5iztjwuHzGcumRFSQWVBlRqx2wXZxYKVHEYk+BbcFVuaX9CasLSAZ4bmQ+oW0L25GbW6MVX1GE2tgpNFcWHzrNO5iR5YulJVzRjboXd5LbEJHe2oslHv2BRA1J4cFxcWbg2sayd5WLPlzDe7QEy0IN9v/sKbZFG/+MtyEJ1EtKOP6os+rPMEGVF/eHDT6jP1mSnPHFz2cvb1po8ub2k8//Xfzq35x19rRQc3vDOU8d7Oxg+e8WjMKfRHp96IoXZ2jgsThuO9nv353vv/lHM2fPuS16fL/52zfEfBdU7Blpy6+qWXc/K3BHlXnnyZnV97h5V959zfU560H8QiBVsHE9jScGwuauX1xv2d5qK3R683wucuFxaleB0I/jZnA7ItZ3P9pzvza73g1+HzKSnv1S4dy6BOs43G10FA3ooZjup1/crOPzrvFXmTL/3yS/WyZSleL8nlOY0p53Oy92/7Hv7Iq35zfkbKO0s3FednTkO2WCNMKN2Kvxb5b78tTehRFrr+zCjaRY18s+HGgatow1iO57bL/bU9xk8rzz3bQH61IXPxMvIG6jRnCvcJ8h7LPed7hz3QWVVa/38trEJcn2H1DGkQUvb7qxFSsVx90f8ai6ShH/Ynfeh95bZqmvMK3M5Coe8eyyvVfq5WYYs8SlXjDo2AK0SlPgS8D7QRVIVlZrSZapr+xMLiG1LJnscnAIsrt9itUehjDmNsROLUxod8BJJQ1HYQShx1aK1orR1IO/2RRX2nUwW0VrxAQkf+vxLQ6Tl2AzoxO0si8ekG26OYmG7sQK/S3f3evbt3o6MDwebj7NmzMzHpBRIQELAVyIPa2trZPk+SfZ6eZD8HCCHNlnFBLSnjVIByEtSTQGAYVlqO9EDJrzcaGYz+Vj6fPzIY1Nfe7gnqpk5Qkz1WmpyamvxqECgFURX78HQ6MdgHZ+F8vF618MEER5VHIWwCI5igH5tgEEhfu+cTpN/PGzj8fwUYAEHf/4ET3ikCAAAAAElFTkSuQmCC');
  213 +
  214 + $objTarjaAssinaturaDTO->setStrSinAtivo('S');
  215 +
  216 + $objTarjaAssinaturaBD = new TarjaAssinaturaBD($this->getObjInfraIBanco());
  217 + $objTarjaAssinaturaDTO = $objTarjaAssinaturaBD->cadastrar( $objTarjaAssinaturaDTO );
  218 +
  219 + //Atualizando parametro para controlar versao do modulo
  220 + $this->logar('ATUALIZANDO PARAMETRO ' . $this->nomeParametroModulo . ' NA TABELA infra_parametro PARA CONTROLAR A VERSÃO DO MÓDULO');
  221 + BancoSEI::getInstance()->executarSql('UPDATE infra_parametro SET valor = \'1.0.4\' WHERE nome = \'' . $this->nomeParametroModulo . '\' ');
  222 +
  223 + } catch (Exception $e) {
  224 + $this->logar($e->getTraceAsString());
  225 + print_r($e);
  226 + die();
  227 + }
  228 + }
  229 +
  230 + //Contem atualizações da versao 1.0.0
  231 + protected function instalarv100()
  232 + {
  233 +
  234 + try {
  235 +
  236 + $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance());
  237 +
  238 + $this->logar('EXECUTANDO A INSTALACAO DA VERSAO 1.0.3 DO MODULO ' . $this->nomeDesteModulo . ' NA BASE DO SEI');
  239 + $this->logar('CRIANDO A TABELA md_pet_hipotese_legal');
  240 +
  241 + BancoSEI::getInstance()->executarSql('CREATE TABLE md_pet_hipotese_legal (
  242 + id_md_pet_hipotese_legal ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL )');
  243 +
  244 + $objInfraMetaBD->adicionarChavePrimaria('md_pet_hipotese_legal', 'pk_md_pet_hipotese_legal', array('id_md_pet_hipotese_legal'));
  245 +
  246 + $objInfraMetaBD->adicionarChaveEstrangeira('fk_id_md_pet_hip_legal1', 'md_pet_hipotese_legal',
  247 + array('id_md_pet_hipotese_legal'), 'hipotese_legal', array('id_hipotese_legal'));
  248 +
  249 + $this->logar('DROP DA COLUNA id_unidade (Não é mais unidade única. Agora terá opção para Peticionamento de Processo Novo para Múltiplas Unidades)');
  250 +
  251 + if (BancoSEI::getInstance() instanceof InfraMySql) {
  252 + $objInfraMetaBD->excluirChaveEstrangeira('md_pet_tipo_processo', 'fk_pet_tp_proc_unidade_02');
  253 + $objInfraMetaBD->excluirIndice('md_pet_tipo_processo', 'fk_pet_tp_proc_unidade_02');
  254 + } else {
  255 + $objInfraMetaBD->excluirChaveEstrangeira('md_pet_tipo_processo', 'fk_pet_tp_proc_unidade_02');
  256 + }
  257 +
  258 + BancoSEI::getInstance()->executarSql('ALTER TABLE md_pet_tipo_processo DROP COLUMN id_unidade');
  259 +
  260 + $this->logar('CRIANDO A TABELA md_pet_rel_tp_processo_unid (para permitir multiplas unidades)');
  261 +
  262 + BancoSEI::getInstance()->executarSql('CREATE TABLE md_pet_rel_tp_processo_unid (
  263 + id_md_pet_tipo_processo ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
  264 + id_unidade ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
  265 + sta_tp_unidade ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NOT NULL
  266 + )');
  267 +
  268 + //Tabelas Abaixo é o problema da modificação da PK (Pk deixou de ser composta e passou a ter SEQ)
  269 + $this->logar('RECRIANDO tabela md_pet_rel_tp_processo_serie (renomeada para md_pet_rel_tp_proc_serie)');
  270 + BancoSEI::getInstance()->executarSql('DROP TABLE md_pet_rel_tp_processo_serie');
  271 +
  272 + BancoSEI::getInstance()->executarSql('CREATE TABLE md_pet_rel_tp_proc_serie (
  273 + id_md_pet_rel_tipo_proc ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
  274 + id_md_pet_tipo_processo ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
  275 + id_serie ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
  276 + sta_tp_doc ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NOT NULL ) ');
  277 +
  278 + //tabela SEQ
  279 + $objInfraMetaBD->adicionarChavePrimaria('md_pet_rel_tp_proc_serie', 'pk_id_md_pet_rel_tipo_proc', array('id_md_pet_rel_tipo_proc'));
  280 +
  281 + $objInfraMetaBD->adicionarChaveEstrangeira('fk_md_pet_rel_tp_proc_serie1', 'md_pet_rel_tp_proc_serie',
  282 + array('id_md_pet_tipo_processo'), 'md_pet_tipo_processo', array('id_md_pet_tipo_processo'));
  283 +
  284 + $objInfraMetaBD->adicionarChaveEstrangeira('fk_md_pet_rel_tp_proc_serie2', 'md_pet_rel_tp_proc_serie',
  285 + array('id_serie'), 'serie', array('id_serie'));
  286 +
  287 + if (BancoSEI::getInstance() instanceof InfraMySql) {
  288 + BancoSEI::getInstance()->executarSql('create table seq_md_pet_rel_tp_proc_serie (id bigint not null primary key AUTO_INCREMENT, campo char(1) null) AUTO_INCREMENT = 1');
  289 + } else if (BancoSEI::getInstance() instanceof InfraSqlServer) {
  290 + BancoSEI::getInstance()->executarSql('create table seq_md_pet_rel_tp_proc_serie (id bigint identity(1,1), campo char(1) null)');
  291 + } else if (BancoSEI::getInstance() instanceof InfraOracle) {
  292 + BancoSEI::getInstance()->criarSequencialNativa('seq_md_pet_rel_tp_proc_serie', 1);
  293 + }
  294 +
  295 + //CRIANDO NOVO TIPO DE DOCUMENTO "Recibo Eletrônico de Protocolo"
  296 + $this->logar('CRIANDO MODELO "Modulo_Peticionamento_Recibo_Eletronico_Protocolo"');
  297 + $modeloRN = new ModeloRN();
  298 + $modeloDTO = new ModeloDTO();
  299 + $modeloDTO->setNumIdModelo(null);
  300 + $modeloDTO->retTodos();
  301 + $modeloDTO->setStrNome('Modulo_Peticionamento_Recibo_Eletronico_Protocolo');
  302 + $modeloDTO->setStrSinAtivo('S');
  303 + $modeloDTO = $modeloRN->cadastrar($modeloDTO);
  304 +
  305 + //adicionando as seções do modelo: Corpo de Texto e Rodapé
  306 + $this->logar('CRIANDO SEÇAO DO MODELO - Corpo do Texto');
  307 + $secaoModeloRN = new SecaoModeloRN();
  308 +
  309 + $secaoModeloCorpoTextoDTO = new SecaoModeloDTO();
  310 + $secaoModeloCorpoTextoDTO->retTodos();
  311 + $secaoModeloCorpoTextoDTO->setNumIdSecaoModelo(null);
  312 + $secaoModeloCorpoTextoDTO->setNumIdModelo($modeloDTO->getNumIdModelo());
  313 + $secaoModeloCorpoTextoDTO->setStrNome('Corpo do Texto');
  314 + $secaoModeloCorpoTextoDTO->setStrConteudo(null);
  315 + $secaoModeloCorpoTextoDTO->setNumOrdem(0);
  316 + $secaoModeloCorpoTextoDTO->setStrSinSomenteLeitura('N');
  317 + $secaoModeloCorpoTextoDTO->setStrSinAssinatura('N');
  318 + $secaoModeloCorpoTextoDTO->setStrSinPrincipal('S');
  319 + $secaoModeloCorpoTextoDTO->setStrSinDinamica('N');
  320 + $secaoModeloCorpoTextoDTO->setStrSinHtml('N');
  321 + $secaoModeloCorpoTextoDTO->setStrSinCabecalho('N');
  322 + $secaoModeloCorpoTextoDTO->setStrSinRodape('N');
  323 + $secaoModeloCorpoTextoDTO->setStrSinAtivo('S');
  324 +
  325 + $secaoModeloCorpoTextoDTO = $secaoModeloRN->cadastrar($secaoModeloCorpoTextoDTO);
  326 +
  327 + //secao do rodapé
  328 + $this->logar('CRIANDO SEÇAO DO MODELO - Rodapé');
  329 + $secaoModeloRodapeDTO = new SecaoModeloDTO();
  330 + $secaoModeloRodapeDTO->retTodos();
  331 + $secaoModeloRodapeDTO->setNumIdSecaoModelo(null);
  332 +
  333 + $htmlConteudo = '<hr style="border:none; padding:0; margin:5px 2px 0 2px; border-top:medium double #333" />
  334 + <table border="0" cellpadding="2" cellspacing="0" width="100%">
  335 + <tbody>
  336 + <tr>
  337 + <td align="left" style="font-family:Calibri;font-size:9pt;border:0;" width="50%"><strong>Refer&ecirc;ncia:</strong> Processo n&ordm; @processo@</td>
  338 + <td align="right" style="font-family:Calibri;font-size:9pt;border:0;" width="50%">SEI n&ordm; @documento@</td>
  339 + </tr>
  340 + </tbody>
  341 + </table>';
  342 +
  343 + $secaoModeloRodapeDTO->setNumIdModelo($modeloDTO->getNumIdModelo());
  344 + $secaoModeloRodapeDTO->setStrNome('Rodapé');
  345 + $secaoModeloRodapeDTO->setStrConteudo($htmlConteudo);
  346 + $secaoModeloRodapeDTO->setNumOrdem(1000);
  347 + $secaoModeloRodapeDTO->setStrSinSomenteLeitura('S');
  348 + $secaoModeloRodapeDTO->setStrSinAssinatura('N');
  349 + $secaoModeloRodapeDTO->setStrSinPrincipal('N');
  350 + $secaoModeloRodapeDTO->setStrSinDinamica('S');
  351 + $secaoModeloRodapeDTO->setStrSinHtml('S');
  352 + $secaoModeloRodapeDTO->setStrSinCabecalho('N');
  353 + $secaoModeloRodapeDTO->setStrSinRodape('S');
  354 + $secaoModeloRodapeDTO->setStrSinAtivo('S');
  355 +
  356 + $secaoModeloRodapeDTO = $secaoModeloRN->cadastrar($secaoModeloRodapeDTO);
  357 +
  358 + //Criar o Grupo de Tipo de Documento “Internos do Sistema”.
  359 + $grupoSerieRN = new GrupoSerieRN();
  360 +
  361 + if (BancoSEI::getInstance() instanceof InfraMySql) {
  362 +
  363 + //verificando antes a situaçao da tabela seq_grupo_serie
  364 + $arrDados = BancoSEI::getInstance()->consultarSql('SELECT * FROM seq_grupo_serie ORDER BY id DESC LIMIT 1 ');
  365 +
  366 + $grupoSerieDTOLista = new GrupoSerieDTO();
  367 + $grupoSerieDTOLista->retTodos();
  368 + $grupoSerieDTOLista->setOrd("IdGrupoSerie", InfraDTO::$TIPO_ORDENACAO_DESC);
  369 + $grupoSerieDTOLista->setNumMaxRegistrosRetorno(1);
  370 +
  371 + $arrListaGrupoSerie = $grupoSerieRN->listarRN0778($grupoSerieDTOLista);
  372 +
  373 + //ja tem registro na SEQ, insere apenas se ID da SEQ estiver incorreto
  374 + if ($arrDados != null && count($arrDados) > 0) {
  375 +
  376 + if ($arrDados[0]['id'] < $arrListaGrupoSerie[0]->getNumIdGrupoSerie()) {
  377 +
  378 + //INSERT para garantir a SEQ na posiçao correta
  379 + BancoSEI::getInstance()->executarSql('INSERT INTO seq_grupo_serie ( id ) VALUES ( ' . $arrListaGrupoSerie[0]->getNumIdGrupoSerie() . ') ');
  380 + }
  381 +
  382 +
  383 + } //nao tem registro na SEQ ainda, colocar o ID do grupo_serie mais atual
  384 + else {
  385 +
  386 + //INSERT para garantir a SEQ na posiçao correta
  387 + BancoSEI::getInstance()->executarSql('INSERT INTO seq_grupo_serie ( id ) VALUES ( ' . $arrListaGrupoSerie[0]->getNumIdGrupoSerie() . ') ');
  388 + }
  389 +
  390 + }
  391 +
  392 + $this->logar('CRIANDO GRUPO DE TIPO DE DOCUMENTO "Internos do Sistema"');
  393 + $grupoSerieDTO = new GrupoSerieDTO();
  394 + $grupoSerieDTO->retTodos();
  395 + $grupoSerieDTO->setNumIdGrupoSerie(null);
  396 +
  397 + $grupoSerieDTO->setStrNome('Internos do Sistema');
  398 + $grupoSerieDTO->setStrDescricao('Tipos de Documentos internos do sistema');
  399 + $grupoSerieDTO->setStrSinAtivo('S');
  400 + $grupoSerieDTO = $grupoSerieRN->cadastrarRN0775($grupoSerieDTO);
  401 +
  402 + //Criar o Tipo de Documento “Recibo Eletrônico de Protocolo”
  403 + $this->logar('CRIANDO TIPO DE DOCUMENTO Recibo Eletrônico de Protocolo');
  404 + $serieDTO = new SerieDTO();
  405 + $serieDTO->retTodos();
  406 + $serieRN = new SerieRN();
  407 +
  408 + $serieDTO->setNumIdSerie(null);
  409 + $serieDTO->setNumIdGrupoSerie($grupoSerieDTO->getNumIdGrupoSerie());
  410 + $serieDTO->setStrStaNumeracao(SerieRN::$TN_SEM_NUMERACAO);
  411 + $serieDTO->setStrStaAplicabilidade(SerieRN::$TA_INTERNO);
  412 + $serieDTO->setNumIdModeloEdoc(null);
  413 + $serieDTO->setNumIdModelo($modeloDTO->getNumIdModelo());
  414 + $serieDTO->setStrNome('Recibo Eletrônico de Protocolo');
  415 + $serieDTO->setStrDescricao('Utilizado para a geração automática do Recibo Eletrônico de Protocolo nos Peticionamentos Eletrônicos realizados por Usuário Externo diretamente no Acesso Externo do SEI.');
  416 + $serieDTO->setStrSinInteressado('S');
  417 + $serieDTO->setStrSinDestinatario('N');
  418 + $serieDTO->setStrSinAssinaturaPublicacao('S');
  419 + $serieDTO->setStrSinInterno('S');
  420 + $serieDTO->setStrSinAtivo('S');
  421 + $serieDTO->setArrObjRelSerieAssuntoDTO(array());
  422 + $serieDTO->setArrObjRelSerieVeiculoPublicacaoDTO(array());
  423 +
  424 + //adicoes SEIv3
  425 + $serieDTO->setNumIdTipoFormulario(null);
  426 + $serieDTO->setArrObjSerieRestricaoDTO(array());
  427 +
  428 + $serieDTO = $serieRN->cadastrarRN0642($serieDTO);
  429 +
  430 + $this->logar('ATUALIZANDO INFRA_PARAMETRO (ID_SERIE_RECIBO_MODULO_PETICIONAMENTO)');
  431 + $nomeParamIdSerie = 'ID_SERIE_RECIBO_MODULO_PETICIONAMENTO';
  432 + BancoSEI::getInstance()->executarSql('INSERT INTO infra_parametro ( valor, nome ) VALUES (\'' . $serieDTO->getNumIdSerie() . '\' , \'' . $nomeParamIdSerie . '\' ) ');
  433 +
  434 + //Atualizando parametro para controlar versao do modulo
  435 + $this->logar('ATUALIZANDO PARAMETRO ' . $this->nomeParametroModulo . ' NA TABELA infra_parametro PARA CONTROLAR A VERSÃO DO MÓDULO');
  436 + BancoSEI::getInstance()->executarSql('UPDATE infra_parametro SET valor = \'1.0.3\' WHERE nome = \'' . $this->nomeParametroModulo . '\' ');
  437 +
  438 + } catch (Exception $e) {
  439 + $this->logar($e->getTraceAsString());
  440 + print_r($e);
  441 + die();
  442 + }
  443 +
  444 + }
  445 +
  446 + //Contem atualizações da versao 0.0.2
  447 + protected function instalarv002()
  448 + {
  449 +
  450 + $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance());
  451 + $this->logar('EXECUTANDO A INSTALACAO DA VERSAO 0.0.2 DO MODULO ' . $this->nomeDesteModulo . ' NA BASE DO SEI');
  452 + $this->logar('CRIANDO A TABELA md_pet_usu_externo_menu E SUA sequence');
  453 +
  454 + BancoSEI::getInstance()->executarSql('CREATE TABLE md_pet_usu_externo_menu( id_md_pet_usu_externo_menu ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
  455 + id_conjunto_estilos ' . $objInfraMetaBD->tipoNumero() . ' NULL ,
  456 + nome ' . $objInfraMetaBD->tipoTextoVariavel(30) . ' NOT NULL ,
  457 + tipo ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NOT NULL ,
  458 + url ' . $objInfraMetaBD->tipoTextoVariavel(2083) . ' NULL ,
  459 + conteudo_html ' . $objInfraMetaBD->tipoTextoGrande() . ' NULL,
  460 + sin_ativo ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NOT NULL ) ');
  461 +
  462 + $objInfraMetaBD->adicionarChavePrimaria('md_pet_usu_externo_menu', 'pk_md_pet_usu_externo_menu', array('id_md_pet_usu_externo_menu'));
  463 +
  464 + $objInfraMetaBD->adicionarChaveEstrangeira('fk_md_pet_menu_cj_est_01',
  465 + 'md_pet_usu_externo_menu',
  466 + array('id_conjunto_estilos'),
  467 + 'conjunto_estilos', array('id_conjunto_estilos'));
  468 +
  469 + if (BancoSEI::getInstance() instanceof InfraMySql) {
  470 + BancoSEI::getInstance()->executarSql('create table seq_md_pet_usu_externo_menu (id bigint not null primary key AUTO_INCREMENT, campo char(1) null) AUTO_INCREMENT = 1');
  471 + } else if (BancoSEI::getInstance() instanceof InfraSqlServer) {
  472 + BancoSEI::getInstance()->executarSql('create table seq_md_pet_usu_externo_menu (id bigint identity(1,1), campo char(1) null)');
  473 + } else if (BancoSEI::getInstance() instanceof InfraOracle) {
  474 + BancoSEI::getInstance()->criarSequencialNativa('seq_md_pet_usu_externo_menu', 1);
  475 + }
  476 +
  477 + //INSERCAO DE DOIS NOVOS MODELOS DE EMAIL NO MENU E-MAILS DO SISTEMA
  478 + $this->logar('INSERINDO EMAILS MD_PET_CONFIRMACAO_PETICIONAMENTO_USUARIO_EXTERNO e MD_PET_ALERTA_PETICIONAMENTO_UNIDADES NA TABELA email_sistema');
  479 +
  480 + //Parametrizar Email de Alerta às Unidades
  481 + $conteudo1 = " :: Este é um e-mail automático ::
  482 +
  483 +O Usuário Externo @nome_usuario_externo@ (@email_usuario_externo@) efetivou o Peticionamento Eletrônico do tipo @tipo_peticionamento@ (@tipo_processo@), no âmbito do processo nº @processo@, conforme disposto no Recibo Eletrônico de Protocolo SEI nº @documento_recibo_eletronico_de_protocolo@.
  484 +
  485 +O mencionado processo se encontra aberto em sua Unidade (@sigla_unidade_abertura_do_processo@). Entre no SEI e confira! Caso não seja de competência de sua Unidade, verifique se já está aberto na Unidade correta e, do contrário, envie-o para a Unidade competente para que seja devidamente tratado.
  486 +
  487 +
  488 +@sigla_orgao@
  489 +@descricao_orgao@
  490 +@sitio_internet_orgao@
  491 +
  492 +ATENÇÃO: As informações contidas neste e-mail, incluindo seus anexos, podem ser restritas apenas à pessoa ou entidade para a qual foi endereçada. Se você não é o destinatário ou a pessoa responsável por encaminhar esta mensagem ao destinatário, você está, por meio desta, notificado que não deverá rever, retransmitir, imprimir, copiar, usar ou distribuir esta mensagem ou quaisquer anexos. Caso você tenha recebido esta mensagem por engano, por favor, contate o remetente imediatamente e em seguida apague esta mensagem.";
  493 +
  494 + $maxIdEmailSistemaUnidades = $this->retornarMaxIdEmailSistema();
  495 +
  496 + $insert1 = "INSERT INTO email_sistema
  497 + (id_email_sistema,
  498 + descricao,
  499 + de,
  500 + para,
  501 + assunto,
  502 + conteudo,
  503 + sin_ativo,
  504 + id_email_sistema_modulo
  505 + )
  506 + VALUES
  507 + (" . $maxIdEmailSistemaUnidades . ",
  508 + 'Peticionamento Eletrônico - Alerta às Unidades',
  509 + '@sigla_sistema@ <@email_sistema@>',
  510 + '@emails_unidade@',
  511 + 'SEI Peticionamento Eletrônico - Processo nº @processo@',
  512 + '" . $conteudo1 . "',
  513 + 'S',
  514 + 'MD_PET_ALERTA_PETICIONAMENTO_UNIDADES'
  515 + )";
  516 + BancoSEI::getInstance()->executarSql($insert1);
  517 +
  518 + //Parametrizar Email de Confirmação ao Usuario Externo
  519 + $conteudo2 = " :: Este é um e-mail automático ::
  520 +
  521 +Prezado(a) @nome_usuario_externo@,
  522 +
  523 +Este e-mail confirma a realização do Peticionamento Eletrônico do tipo @tipo_peticionamento@ no SEI-@sigla_orgao@, no âmbito do processo nº @processo@, conforme disposto no Recibo Eletrônico de Protocolo SEI nº @documento_recibo_eletronico_de_protocolo@.
  524 +
  525 +Caso no futuro precise realizar novo peticionamento, sempre acesse a área destinada aos Usuários Externos no SEI-@sigla_orgao@ destacada em seu Portal na Internet ou acesse diretamente o link a seguir: @link_login_usuario_externo@
  526 +
  527 +
  528 +@sigla_orgao@
  529 +@descricao_orgao@
  530 +@sitio_internet_orgao@
  531 +
  532 +ATENÇÃO: As informações contidas neste e-mail, incluindo seus anexos, podem ser restritas apenas à pessoa ou entidade para a qual foi endereçada. Se você não é o destinatário ou a pessoa responsável por encaminhar esta mensagem ao destinatário, você está, por meio desta, notificado que não deverá rever, retransmitir, imprimir, copiar, usar ou distribuir esta mensagem ou quaisquer anexos. Caso você tenha recebido esta mensagem por engano, por favor, contate o remetente imediatamente e em seguida apague esta mensagem.";
  533 +
  534 + $maxIdEmailSistemaUsuario = $this->retornarMaxIdEmailSistema();
  535 +
  536 + $insert2 = "INSERT INTO email_sistema
  537 + (id_email_sistema,
  538 + descricao,
  539 + de,
  540 + para,
  541 + assunto,
  542 + conteudo,
  543 + sin_ativo,
  544 + id_email_sistema_modulo
  545 + )
  546 + VALUES
  547 + (" . $maxIdEmailSistemaUsuario . ",
  548 + 'Peticionamento Eletrônico - Confirmação ao Usuário Externo',
  549 + '@sigla_sistema@ <@email_sistema@>',
  550 + '@email_usuario_externo@',
  551 + 'SEI - Confirmação de Peticionamento Eletrônico (Processo nº @processo@)',
  552 + '" . $conteudo2 . "',
  553 + 'S',
  554 + 'MD_PET_CONFIRMACAO_PETICIONAMENTO_USUARIO_EXTERNO'
  555 + )";
  556 +
  557 + BancoSEI::getInstance()->executarSql($insert2);
  558 +
  559 + $this->logar('CRIANDO A TABELA md_pet_usu_ext_processo E SUA sequence');
  560 +
  561 + //Inserindo tabelas referentes ao Recibo Eletronico de Protocolo
  562 + BancoSEI::getInstance()->executarSql('CREATE TABLE md_pet_usu_ext_processo (
  563 + id_md_pet_usu_externo_processo ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
  564 + id_md_pet_tipo_processo ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
  565 + especificacao ' . $objInfraMetaBD->tipoTextoVariavel(50) . ' NULL,
  566 + tipo_interessado ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NULL,
  567 + id_usuario_externo ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
  568 + data_hora_recebimento ' . $objInfraMetaBD->tipoDataHora() . ' NULL,
  569 + ip_usuario ' . $objInfraMetaBD->tipoTextoVariavel(60) . ' NULL,
  570 + numero_processo ' . $objInfraMetaBD->tipoTextoVariavel(40) . ' NULL,
  571 + sin_ativo ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NOT NULL ) ');
  572 +
  573 + $objInfraMetaBD->adicionarChavePrimaria('md_pet_usu_ext_processo', 'pk_md_pet_usu_externo_processo', array('id_md_pet_usu_externo_processo'));
  574 +
  575 + if (BancoSEI::getInstance() instanceof InfraMySql) {
  576 + BancoSEI::getInstance()->executarSql('create table seq_md_pet_usu_ext_processo (id bigint not null primary key AUTO_INCREMENT, campo char(1) null) AUTO_INCREMENT = 1');
  577 + } else if (BancoSEI::getInstance() instanceof InfraSqlServer) {
  578 + BancoSEI::getInstance()->executarSql('create table seq_md_pet_usu_ext_processo (id bigint identity(1,1), campo char(1) null)');
  579 + } else if (BancoSEI::getInstance() instanceof InfraOracle) {
  580 + BancoSEI::getInstance()->criarSequencialNativa('seq_md_pet_usu_ext_processo', 1);
  581 + }
  582 +
  583 + //Tabelas relacionais com Tipos de Contatos permitidos para Cadastro e para Seleção
  584 + $this->logar('CRIANDO A TABELA md_pet_rel_tp_ctx_contato');
  585 +
  586 + //veraao SEIv2.6 id_tipo_contexto_contato ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
  587 + //versao SEIv3.0
  588 + BancoSEI::getInstance()->executarSql('CREATE TABLE md_pet_rel_tp_ctx_contato (
  589 + id_tipo_contato ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
  590 + sin_cadastro_interessado ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NOT NULL,
  591 + sin_selecao_interessado ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NOT NULL,
  592 + id_md_pet_rel_tp_ctx_contato ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL
  593 + ) ');
  594 +
  595 + $objInfraMetaBD->adicionarChavePrimaria('md_pet_rel_tp_ctx_contato', 'pk1_md_pet_rel_tp_ctx_cont', array('id_md_pet_rel_tp_ctx_contato'));
  596 +
  597 + //versao SEIv2.6
  598 + //$objInfraMetaBD->adicionarChaveEstrangeira('fk_md_pet_rel_tp_ctx_cont_1','md_pet_rel_tp_ctx_contato',
  599 + //array('id_tipo_contexto_contato'),
  600 + //'tipo_contexto_contato',array('id_tipo_contexto_contato'));
  601 +
  602 + //versao SEIv3.0
  603 + $objInfraMetaBD->adicionarChaveEstrangeira('fk_md_pet_rel_tp_ctx_cont_1', 'md_pet_rel_tp_ctx_contato',
  604 + array('id_tipo_contato'),
  605 + 'tipo_contato', array('id_tipo_contato'));
  606 +
  607 + if (BancoSEI::getInstance() instanceof InfraMySql) {
  608 + BancoSEI::getInstance()->executarSql('create table seq_md_pet_rel_tp_ctx_contato (id bigint not null primary key AUTO_INCREMENT, campo char(1) null) AUTO_INCREMENT = 1');
  609 + } else if (BancoSEI::getInstance() instanceof InfraSqlServer) {
  610 + BancoSEI::getInstance()->executarSql('create table seq_md_pet_rel_tp_ctx_contato (id bigint identity(1,1), campo char(1) null)');
  611 + } else if (BancoSEI::getInstance() instanceof InfraOracle) {
  612 + BancoSEI::getInstance()->criarSequencialNativa('seq_md_pet_rel_tp_ctx_contato', 1);
  613 + }
  614 +
  615 + //Tabelas referentes ao Recibo Eletronico de Protocolo
  616 + $this->logar('CRIANDO A TABELA md_pet_rel_recibo_protoc E SUA sequence');
  617 +
  618 + BancoSEI::getInstance()->executarSql('CREATE TABLE md_pet_rel_recibo_protoc (
  619 + id_md_pet_rel_recibo_protoc ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
  620 + id_protocolo ' . $objInfraMetaBD->tipoNumeroGrande() . ' NOT NULL,
  621 + id_protocolo_relacionado ' . $objInfraMetaBD->tipoNumeroGrande() . ' NULL,
  622 + id_usuario ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
  623 + ip_usuario ' . $objInfraMetaBD->tipoTextoVariavel(500) . ' NOT NULL,
  624 + data_hora_recebimento_final ' . $objInfraMetaBD->tipoDataHora() . ' NULL,
  625 + sin_ativo ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NOT NULL,
  626 + sta_tipo_peticionamento ' . $objInfraMetaBD->tipoTextoVariavel(1) . ' NULL )');
  627 +
  628 + $objInfraMetaBD->adicionarChavePrimaria('md_pet_rel_recibo_protoc', 'pk1_md_pet_rel_recibo_protoc', array('id_md_pet_rel_recibo_protoc'));
  629 +
  630 + $objInfraMetaBD->adicionarChaveEstrangeira('fk1_md_pet_rel_recibo_protoc', 'md_pet_rel_recibo_protoc', array('id_protocolo'), 'protocolo', array('id_protocolo'));
  631 + $objInfraMetaBD->adicionarChaveEstrangeira('fk2_md_pet_rel_recibo_protoc', 'md_pet_rel_recibo_protoc', array('id_usuario'), 'usuario', array('id_usuario'));
  632 + $objInfraMetaBD->adicionarChaveEstrangeira('fk3_md_pet_rel_recibo_protoc', 'md_pet_rel_recibo_protoc', array('id_protocolo_relacionado'), 'protocolo', array('id_protocolo'));
  633 +
  634 + if (BancoSEI::getInstance() instanceof InfraMySql) {
  635 + BancoSEI::getInstance()->executarSql('create table seq_md_pet_rel_recibo_protoc (id bigint not null primary key AUTO_INCREMENT, campo char(1) null) AUTO_INCREMENT = 1');
  636 + } else if (BancoSEI::getInstance() instanceof InfraSqlServer) {
  637 + BancoSEI::getInstance()->executarSql('create table seq_md_pet_rel_recibo_protoc (id bigint identity(1,1), campo char(1) null)');
  638 + } else if (BancoSEI::getInstance() instanceof InfraOracle) {
  639 + BancoSEI::getInstance()->criarSequencialNativa('seq_md_pet_rel_recibo_protoc', 1);
  640 + }
  641 +
  642 + //Tabelas de recibo X documentos
  643 + $this->logar('CRIANDO A TABELA md_pet_rel_recibo_docanexo E SUA sequence');
  644 +
  645 + BancoSEI::getInstance()->executarSql('CREATE TABLE md_pet_rel_recibo_docanexo (
  646 + id_md_pet_rel_recibo_docanexo ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
  647 + id_md_pet_rel_recibo_protoc ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
  648 + formato_documento ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NULL,
  649 + id_documento ' . $objInfraMetaBD->tipoNumeroGrande() . ' NULL,
  650 + id_anexo ' . $objInfraMetaBD->tipoNumero() . ' NULL,
  651 + classificacao_documento ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NOT NULL )');
  652 +
  653 + $objInfraMetaBD->adicionarChavePrimaria('md_pet_rel_recibo_docanexo', 'pk1_md_pet_rel_recibo_docanexo', array('id_md_pet_rel_recibo_docanexo'));
  654 +
  655 + $objInfraMetaBD->adicionarChaveEstrangeira('fk_pet_rel_recibo_docanexo_01', 'md_pet_rel_recibo_docanexo', array('id_md_pet_rel_recibo_protoc'), 'md_pet_rel_recibo_protoc', array('id_md_pet_rel_recibo_protoc'));
  656 + $objInfraMetaBD->adicionarChaveEstrangeira('fk_pet_rel_recibo_docanexo_02', 'md_pet_rel_recibo_docanexo', array('id_documento'), 'documento', array('id_documento'));
  657 + $objInfraMetaBD->adicionarChaveEstrangeira('fk_pet_rel_recibo_docanexo_03', 'md_pet_rel_recibo_docanexo', array('id_anexo'), 'anexo', array('id_anexo'));
  658 +
  659 + if (BancoSEI::getInstance() instanceof InfraMySql) {
  660 + BancoSEI::getInstance()->executarSql('create table seq_md_pet_rel_recibo_docanexo (id bigint not null primary key AUTO_INCREMENT, campo char(1) null) AUTO_INCREMENT = 1');
  661 + } else if (BancoSEI::getInstance() instanceof InfraSqlServer) {
  662 + BancoSEI::getInstance()->executarSql('create table seq_md_pet_rel_recibo_docanexo (id bigint identity(1,1), campo char(1) null)');
  663 + } else if (BancoSEI::getInstance() instanceof InfraOracle) {
  664 + BancoSEI::getInstance()->criarSequencialNativa('seq_md_pet_rel_recibo_docanexo', 1);
  665 + }
  666 +
  667 + //Atualizando parametro para controlar versao do modulo
  668 + $this->logar('ATUALIZANDO PARAMETRO ' . $this->nomeParametroModulo . ' NA TABELA infra_parametro PARA CONTROLAR A VERSÃO DO MÓDULO');
  669 + BancoSEI::getInstance()->executarSql('UPDATE infra_parametro SET valor = \'0.0.2\' WHERE nome = \'' . $this->nomeParametroModulo . '\' ');
  670 +
  671 + }
  672 +
  673 + //Contem atualizações da versao 0.0.1
  674 + protected function instalarv001()
  675 + {
  676 +
  677 + $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance());
  678 +
  679 + $this->logar('EXECUTANDO A INSTALACAO DA VERSAO 0.0.1 DO MODULO ' . $this->nomeDesteModulo . ' NA BASE DO SEI');
  680 + $this->logar('CRIANDO A TABELA md_pet_tipo_processo E SUA sequence');
  681 +
  682 + BancoSEI::getInstance()->executarSql('CREATE TABLE md_pet_tipo_processo( id_md_pet_tipo_processo ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
  683 + id_tipo_procedimento ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL ,
  684 + id_unidade ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL ,
  685 + id_serie ' . $objInfraMetaBD->tipoNumero() . ' NULL , '
  686 +
  687 + . 'id_hipotese_legal ' . $objInfraMetaBD->tipoNumero() . ' NULL ,
  688 + orientacoes ' . $objInfraMetaBD->tipoTextoVariavel(500) . ' NOT NULL,
  689 + sta_nivel_acesso ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NULL,
  690 + sin_ii_proprio_usuario_externo ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NULL,
  691 + sin_ii_indicacao_direta ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NULL,
  692 + sin_ii_indic_direta_cpf_cnpj ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NULL,
  693 + sin_ii_indic_direta_contato ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NULL,
  694 + sin_na_usuario_externo ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NULL,
  695 + sin_na_padrao ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NULL,
  696 + sin_doc_gerado ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NULL,
  697 + sin_doc_externo ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NULL,
  698 + sin_ativo ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NOT NULL ) ');
  699 +
  700 + $objInfraMetaBD->adicionarChavePrimaria('md_pet_tipo_processo', 'pk_md_pet_tipo_processo', array('id_md_pet_tipo_processo'));
  701 + $objInfraMetaBD->adicionarChaveEstrangeira('fk_pet_tp_proc_tipo_proc_01', 'md_pet_tipo_processo', array('id_tipo_procedimento'), 'tipo_procedimento', array('id_tipo_procedimento'));
  702 + $objInfraMetaBD->adicionarChaveEstrangeira('fk_pet_tp_proc_unidade_02', 'md_pet_tipo_processo', array('id_unidade'), 'unidade', array('id_unidade'));
  703 + $objInfraMetaBD->adicionarChaveEstrangeira('fk_pet_tp_proc_serie_03', 'md_pet_tipo_processo', array('id_serie'), 'serie', array('id_serie'));
  704 + $objInfraMetaBD->adicionarChaveEstrangeira('fk_pet_tp_proc_hip_legal_04', 'md_pet_tipo_processo', array('id_hipotese_legal'), 'hipotese_legal', array('id_hipotese_legal'));
  705 +
  706 + if (BancoSEI::getInstance() instanceof InfraMySql) {
  707 + BancoSEI::getInstance()->executarSql('create table seq_md_pet_tipo_processo (id bigint not null primary key AUTO_INCREMENT, campo char(1) null) AUTO_INCREMENT = 1');
  708 + } else if (BancoSEI::getInstance() instanceof InfraSqlServer) {
  709 + BancoSEI::getInstance()->executarSql('create table seq_md_pet_tipo_processo (id bigint identity(1,1), campo char(1) null)');
  710 + } else if (BancoSEI::getInstance() instanceof InfraOracle) {
  711 + BancoSEI::getInstance()->criarSequencialNativa('seq_md_pet_tipo_processo', 1);
  712 + }
  713 +
  714 + $this->logar('CRIANDO A TABELA md_pet_rel_tp_processo_serie');
  715 +
  716 + BancoSEI::getInstance()->executarSql('CREATE TABLE md_pet_rel_tp_processo_serie (
  717 + id_md_pet_tipo_processo ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
  718 + id_serie ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL)');
  719 +
  720 + $objInfraMetaBD->adicionarChavePrimaria('md_pet_rel_tp_processo_serie', 'pk1_md_pet_rel_tp_proc_serie', array('id_md_pet_tipo_processo', 'id_serie'));
  721 + $objInfraMetaBD->adicionarChaveEstrangeira('fk1_md_pet_rel_tp_proc_serie', 'md_pet_rel_tp_processo_serie', array('id_md_pet_tipo_processo'), 'md_pet_tipo_processo', array('id_md_pet_tipo_processo'));
  722 + $objInfraMetaBD->adicionarChaveEstrangeira('fk2_md_pet_rel_tp_proc_serie', 'md_pet_rel_tp_processo_serie', array('id_serie'), 'serie', array('id_serie'));
  723 +
  724 + $this->logar('CRIANDO A TABELA md_pet_tp_processo_orientacoes');
  725 +
  726 + BancoSEI::getInstance()->executarSql('CREATE TABLE md_pet_tp_processo_orientacoes (
  727 + id_md_pet_tp_proc_orientacoes ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
  728 + id_conjunto_estilos ' . $objInfraMetaBD->tipoNumero() . ' NULL,
  729 + orientacoes_gerais ' . $objInfraMetaBD->tipoTextoGrande() . ' NOT NULL )');
  730 +
  731 + $objInfraMetaBD->adicionarChavePrimaria('md_pet_tp_processo_orientacoes', 'pk_md_pet_tp_proc_orient', array('id_md_pet_tp_proc_orientacoes'));
  732 + $objInfraMetaBD->adicionarChaveEstrangeira('fk_md_pet_tp_proc_or_cj_est', 'md_pet_tp_processo_orientacoes', array('id_conjunto_estilos'), 'conjunto_estilos', array('id_conjunto_estilos'));
  733 +
  734 + $this->logar('CRIANDO A TABELA md_pet_ext_arquivo_perm E SUA sequence');
  735 +
  736 + BancoSEI::getInstance()->executarSql('CREATE TABLE md_pet_ext_arquivo_perm (
  737 + id_md_pet_ext_arquivo_perm ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
  738 + id_arquivo_extensao ' . $objInfraMetaBD->tipoNumero() . ' NULL ,
  739 + sin_principal ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NOT NULL,
  740 + sin_ativo ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NOT NULL )');
  741 +
  742 + $objInfraMetaBD->adicionarChavePrimaria('md_pet_ext_arquivo_perm', 'pk_md_pet_ext_arquivo_perm', array('id_md_pet_ext_arquivo_perm'));
  743 + $objInfraMetaBD->adicionarChaveEstrangeira('fk1_md_pet_ext_arquivo_perm', 'md_pet_ext_arquivo_perm', array('id_arquivo_extensao'), 'arquivo_extensao', array('id_arquivo_extensao'));
  744 +
  745 + if (BancoSEI::getInstance() instanceof InfraMySql) {
  746 + BancoSEI::getInstance()->executarSql('create table seq_md_pet_ext_arquivo_perm (id bigint not null primary key AUTO_INCREMENT, campo char(1) null) AUTO_INCREMENT = 1');
  747 + } else if (BancoSEI::getInstance() instanceof InfraSqlServer) {
  748 + BancoSEI::getInstance()->executarSql('create table seq_md_pet_ext_arquivo_perm (id bigint identity(1,1), campo char(1) null)');
  749 + } else if (BancoSEI::getInstance() instanceof InfraOracle) {
  750 + BancoSEI::getInstance()->criarSequencialNativa('seq_md_pet_ext_arquivo_perm', 1);
  751 + }
  752 +
  753 + $this->logar('CRIANDO A TABELA md_pet_tamanho_arquivo');
  754 +
  755 + BancoSEI::getInstance()->executarSql('CREATE TABLE md_pet_tamanho_arquivo (
  756 + id_md_pet_tamanho_arquivo ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
  757 + valor_doc_principal ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
  758 + valor_doc_complementar ' . $objInfraMetaBD->tipoNumero() . ' NULL,
  759 + sin_ativo ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NOT NULL ) ');
  760 +
  761 + $objInfraMetaBD->adicionarChavePrimaria('md_pet_tamanho_arquivo', 'pk_md_pet_tamanho_arquivo', array('id_md_pet_tamanho_arquivo'));
  762 +
  763 + $objMdPetTamanhoArquivoDTO = new MdPetTamanhoArquivoDTO();
  764 + $objMdPetTamanhoArquivoRN = new MdPetTamanhoArquivoRN();
  765 + $objMdPetTamanhoArquivoDTO->retTodos();
  766 + $objMdPetTamanhoArquivoDTO->setNumValorDocPrincipal('5');
  767 + $objMdPetTamanhoArquivoDTO->setNumValorDocComplementar('10');
  768 + $objMdPetTamanhoArquivoDTO->setNumIdTamanhoArquivo(MdPetTamanhoArquivoRN::$ID_FIXO_TAMANHO_ARQUIVO);
  769 + $objMdPetTamanhoArquivoDTO->setStrSinAtivo('S');
  770 + $objMdPetTamanhoArquivoRN->cadastrar($objMdPetTamanhoArquivoDTO);
  771 +
  772 + $this->logar('CRIANDO A TABELA md_pet_indisponibilidade E SUA sequence');
  773 +
  774 + BancoSEI::getInstance()->executarSql('CREATE TABLE md_pet_indisponibilidade (
  775 + id_md_pet_indisponibilidade ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
  776 + dth_inicio ' . $objInfraMetaBD->tipoDataHora() . ' NOT NULL,
  777 + dth_fim ' . $objInfraMetaBD->tipoDataHora() . ' NOT NULL,
  778 + resumo_indisponibilidade ' . $objInfraMetaBD->tipoTextoVariavel(500) . ' NULL,
  779 + sin_prorrogacao ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NOT NULL,
  780 + sin_ativo ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NOT NULL ) ');
  781 +
  782 + $objInfraMetaBD->adicionarChavePrimaria('md_pet_indisponibilidade', 'pk_md_pet_indisponibilidade', array('id_md_pet_indisponibilidade'));
  783 +
  784 + if (BancoSEI::getInstance() instanceof InfraMySql) {
  785 + BancoSEI::getInstance()->executarSql('create table seq_md_pet_indisponibilidade (id bigint not null primary key AUTO_INCREMENT, campo char(1) null) AUTO_INCREMENT = 1');
  786 + } else if (BancoSEI::getInstance() instanceof InfraSqlServer) {
  787 + BancoSEI::getInstance()->executarSql('create table seq_md_pet_indisponibilidade (id bigint identity(1,1), campo char(1) null)');
  788 + } else if (BancoSEI::getInstance() instanceof InfraOracle) {
  789 + BancoSEI::getInstance()->criarSequencialNativa('seq_md_pet_indisponibilidade', 1);
  790 + }
  791 +
  792 + $this->logar('CRIANDO A TABELA md_pet_indisp_anexo E SUA sequence');
  793 +
  794 + BancoSEI::getInstance()->executarSql('CREATE TABLE md_pet_indisp_anexo (
  795 + id_md_pet_anexo ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
  796 + id_md_pet_indisponibilidade ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
  797 + id_unidade ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
  798 + id_usuario ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
  799 + dth_inclusao ' . $objInfraMetaBD->tipoDataHora() . ' NOT NULL,
  800 + nome ' . $objInfraMetaBD->tipoTextoVariavel(255) . ' NOT NULL,
  801 + tamanho ' . $objInfraMetaBD->tipoNumero() . ' NOT NULL,
  802 + sin_ativo ' . $objInfraMetaBD->tipoTextoFixo(1) . ' NOT NULL,
  803 + hash ' . $objInfraMetaBD->tipoTextoFixo(32) . ' NOT NULL ) ');
  804 +
  805 + $objInfraMetaBD->adicionarChavePrimaria('md_pet_indisp_anexo', 'pk_pet_indisponibilidade_anexo', array('id_md_pet_anexo'));
  806 + $objInfraMetaBD->adicionarChaveEstrangeira('fk_md_pet_indisp_anexo_01', 'md_pet_indisp_anexo', array('id_md_pet_indisponibilidade'), 'md_pet_indisponibilidade', array('id_md_pet_indisponibilidade'));
  807 + $objInfraMetaBD->adicionarChaveEstrangeira('fk_md_pet_indisp_anexo_02', 'md_pet_indisp_anexo', array('id_unidade'), 'unidade', array('id_unidade'));
  808 + $objInfraMetaBD->adicionarChaveEstrangeira('fk_md_pet_indisp_anexo_03', 'md_pet_indisp_anexo', array('id_usuario'), 'usuario', array('id_usuario'));
  809 +
  810 + if (BancoSEI::getInstance() instanceof InfraMySql) {
  811 + BancoSEI::getInstance()->executarSql('create table seq_md_pet_indisp_anexo (id bigint not null primary key AUTO_INCREMENT, campo char(1) null) AUTO_INCREMENT = 1');
  812 + } else if (BancoSEI::getInstance() instanceof InfraSqlServer) {
  813 + BancoSEI::getInstance()->executarSql('create table seq_md_pet_indisp_anexo (id bigint identity(1,1), campo char(1) null)');
  814 + } else if (BancoSEI::getInstance() instanceof InfraOracle) {
  815 + BancoSEI::getInstance()->criarSequencialNativa('seq_md_pet_indisp_anexo', 1);
  816 + }
  817 +
  818 + //Adicionando parametro para controlar versao do modulo
  819 + $this->logar('ADICIONANDO PARAMETRO ' . $this->nomeParametroModulo . ' NA TABELA infra_parametro PARA CONTROLAR A VERSÃO DO MÓDULO');
  820 + BancoSEI::getInstance()->executarSql('INSERT INTO infra_parametro (valor, nome ) VALUES( \'0.0.1\', \'' . $this->nomeParametroModulo . '\' )');
  821 + }
  822 +
  823 + protected function atualizarVersaoConectado()
  824 + {
  825 +
  826 + try {
  827 + $this->inicializar('INICIANDO ATUALIZACAO DO MODULO ' . $this->nomeDesteModulo . ' NO SEI VERSAO ' . SEI_VERSAO);
  828 +
  829 + //testando versao do framework
  830 + $numVersaoInfraRequerida = '1.385';
  831 + $versaoInfraFormatada = (int) str_replace('.','', VERSAO_INFRA);
  832 + $versaoInfraReqFormatada = (int) str_replace('.','', $numVersaoInfraRequerida);
  833 +
  834 + if ($versaoInfraFormatada < $versaoInfraReqFormatada){
  835 + $this->finalizar('VERSAO DO FRAMEWORK PHP INCOMPATIVEL (VERSAO ATUAL '.VERSAO_INFRA.', SENDO REQUERIDA VERSAO IGUAL OU SUPERIOR A '.$numVersaoInfraRequerida.')',true);
  836 + }
  837 +
  838 + //checando BDs suportados
  839 + if (!(BancoSEI::getInstance() instanceof InfraMySql) &&
  840 + !(BancoSEI::getInstance() instanceof InfraSqlServer) &&
  841 + !(BancoSEI::getInstance() instanceof InfraOracle)
  842 + ) {
  843 + $this->finalizar('BANCO DE DADOS NAO SUPORTADO: ' . get_parent_class(BancoSEI::getInstance()), true);
  844 + }
  845 +
  846 + //checando permissoes na base de dados
  847 + $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance());
  848 +
  849 + if (count($objInfraMetaBD->obterTabelas('sei_teste')) == 0) {
  850 + BancoSEI::getInstance()->executarSql('CREATE TABLE sei_teste (id ' . $objInfraMetaBD->tipoNumero() . ' null)');
  851 + }
  852 +
  853 + BancoSEI::getInstance()->executarSql('DROP TABLE sei_teste');
  854 +
  855 + $objInfraParametro = new InfraParametro(BancoSEI::getInstance());
  856 +
  857 + $strVersaoModuloPeticionamento = $objInfraParametro->getValor($this->nomeParametroModulo, false);
  858 +
  859 + //VERIFICANDO QUAL VERSAO DEVE SER INSTALADA NESTA EXECUCAO
  860 + //nao tem nenhuma versao ainda, instalar todas
  861 + if (InfraString::isBolVazia($strVersaoModuloPeticionamento)) {
  862 + $this->instalarv001();
  863 + $this->instalarv002();
  864 + $this->instalarv100();
  865 + $this->instalarv104();
  866 + $this->instalarv110();
  867 + $this->logar('ATUALIZAÇÔES DA VERSÃO ' . $this->versaoAtualDesteModulo . ' DO MODULO ' . $this->nomeDesteModulo . ' INSTALADAS COM SUCESSO NA BASE DO SEI');
  868 + $this->finalizar('FIM', false);
  869 + } //se ja tem 001 instala apenas 002, 100, 104 e 110
  870 + else if ($strVersaoModuloPeticionamento == '0.0.1') {
  871 + $this->instalarv002();
  872 + $this->instalarv100();
  873 + $this->instalarv104();
  874 + $this->instalarv110();
  875 + $this->logar('ATUALIZAÇÔES DA VERSÃO ' . $this->versaoAtualDesteModulo . ' DO MÓDULO ' . $this->nomeDesteModulo . ' INSTALADAS COM SUCESSO NA BASE DO SEI');
  876 + $this->finalizar('FIM', false);
  877 + } //se ja tem 002 instala apenas 100, 104, 110
  878 + else if ($strVersaoModuloPeticionamento == '0.0.2') {
  879 + $this->instalarv100();
  880 + $this->instalarv104();
  881 + $this->instalarv110();
  882 + $this->logar('ATUALIZAÇÔES DA VERSÃO ' . $this->versaoAtualDesteModulo . ' DO MÓDULO ' . $this->nomeDesteModulo . ' INSTALADAS COM SUCESSO NA BASE DO SEI');
  883 + $this->finalizar('FIM', false);
  884 + } //se ja tem 100 ou 103 instala apenas a 104 e 110
  885 + else if (in_array($strVersaoModuloPeticionamento, array('1.0.0', '1.0.3'))) {
  886 + $this->instalarv104();
  887 + $this->instalarv110();
  888 + $this->logar('ATUALIZAÇÔES DA VERSÃO ' . $this->versaoAtualDesteModulo . ' DO MÓDULO ' . $this->nomeDesteModulo . ' INSTALADAS COM SUCESSO NA BASE DO SEI');
  889 + $this->finalizar('FIM', false);
  890 + } //se ja tem 104 apenas a 110
  891 + else if ($strVersaoModuloPeticionamento == '1.0.4') {
  892 + $this->instalarv110();
  893 + $this->logar('ATUALIZAÇÔES DA VERSÃO ' . $this->versaoAtualDesteModulo . ' DO MÓDULO ' . $this->nomeDesteModulo . ' INSTALADAS COM SUCESSO NA BASE DO SEI');
  894 + $this->finalizar('FIM', false);
  895 + }
  896 + else if ($strVersaoModuloPeticionamento == '1.1.0') {
  897 + $this->logar('A VERSAO MAIS ATUAL DO MODULO ' . $this->nomeDesteModulo . ' (v ' . $this->versaoAtualDesteModulo . ') JA ESTA INSTALADA.');
  898 + $this->finalizar('FIM', false);
  899 + }
  900 +
  901 + InfraDebug::getInstance()->setBolLigado(false);
  902 + InfraDebug::getInstance()->setBolDebugInfra(false);
  903 + InfraDebug::getInstance()->setBolEcho(false);
  904 +
  905 + } catch (Exception $e) {
  906 + InfraDebug::getInstance()->setBolLigado(true);
  907 + InfraDebug::getInstance()->setBolDebugInfra(true);
  908 + InfraDebug::getInstance()->setBolEcho(true);
  909 + $this->logar($e->getTraceAsString());
  910 + $this->finalizar('FIM', true);
  911 + print_r($e);
  912 + die;
  913 + throw new InfraException('Erro atualizando versão.', $e);
  914 + }
  915 +
  916 + }
  917 +
  918 + private function existeIdEmailSistemaPecitionamento()
  919 + {
  920 + $this->logar('VERIFICANDO A EXISTENCIA DE MODELOS DE EMAIL PARA PETICIONAMENTO');
  921 + $sql = "select
  922 + id_email_sistema
  923 + from email_sistema
  924 + where
  925 + id_email_sistema in (3001,3002)";
  926 + $rs = BancoSEI::getInstance()->consultarSql($sql);
  927 + return (count($rs) > 0) ? true : false;
  928 + }
  929 +
  930 + private function atualizarIdEmailSistemaAlertaPecitionamento()
  931 + {
  932 + $this->logar('ATUALIZANDO O IDENTIFICADOR DO MODELO DE EMAIL PARA PETICIONAMENTO DA CONSTANTE MD_PET_ALERTA_PETICIONAMENTO_UNIDADES');
  933 + $idEmailSistema = $this->retornarMaxIdEmailSistema();
  934 + BancoSEI::getInstance()->executarSql('update email_sistema SET id_email_sistema = ' . $idEmailSistema . ', id_email_sistema_modulo = \'MD_PET_ALERTA_PETICIONAMENTO_UNIDADES\' WHERE id_email_sistema = 3002');
  935 + }
  936 +
  937 + private function atualizarIdEmailSistemaConfirmacaoPeticionamento()
  938 + {
  939 + $this->logar('ATUALIZANDO O IDENTIFICADOR DO MODELO DE EMAIL PARA PETICIONAMENTO DA CONSTANTE MD_PET_CONFIRMACAO_PETICIONAMENTO_USUARIO_EXTERNO');
  940 + $idEmailSistema = $this->retornarMaxIdEmailSistema();
  941 + BancoSEI::getInstance()->executarSql('update email_sistema SET id_email_sistema = ' . $idEmailSistema . ', id_email_sistema_modulo = \'MD_PET_CONFIRMACAO_PETICIONAMENTO_USUARIO_EXTERNO\' WHERE id_email_sistema = 3001');
  942 + }
  943 +
  944 + private function retornarMaxIdEmailSistema()
  945 + {
  946 + $this->logar('BUSCANDO O PROXIMO ID DISPONIVEL NA TABELA EMAIL_SISTEMA ');
  947 + $sql = "select id_email_sistema from email_sistema where id_email_sistema > 999";
  948 + $rs = BancoSEI::getInstance()->consultarSql($sql);
  949 +
  950 + $maxIdEmailSistema = (1000 + count($rs));
  951 + $indiceAnterior = 0;
  952 + foreach ($rs as $i => $r) {
  953 + if ($i == 0 && $r['id_email_sistema'] > 1000) {
  954 + $maxIdEmailSistema = 1000;
  955 + break;
  956 + }
  957 +
  958 + if (($r['id_email_sistema'] - $rs[$indiceAnterior]['id_email_sistema']) > 1) {
  959 + $maxIdEmailSistema = $rs[$indiceAnterior]['id_email_sistema'] + 1;
  960 + break;
  961 + }
  962 + $indiceAnterior = $i;
  963 + }
  964 + return $maxIdEmailSistema;
  965 + }
  966 +
  967 +}
  968 +
  969 +?>
0 970 \ No newline at end of file
... ...
sei/web/modulos/peticionamento/rn/MdPetCriterioRN.php
... ... @@ -387,24 +387,37 @@ class MdPetCriterioRN extends InfraRN
387 387  
388 388 // Verifica se o processo possui critério intercorrente cadastrado
389 389 $objMdPetCriterioDTO->retTodos();
  390 + $objMdPetCriterioDTO->retStrTipoProcessoSinAtivo();
390 391 $objMdPetCriterioDTO->setNumIdTipoProcedimento($idTpProcedimento);
391 392 $objMdPetCriterioDTO->setStrSinCriterioPadrao('N');
  393 +
  394 + // se o criterio estiver apontando para um tipo de processo que foi desativado nao trazer ele
  395 + $objMdPetCriterioDTO->setStrTipoProcessoSinAtivo('S');
  396 +
392 397 $arrObjCriterioIntercorrenteDTO = $objMdPetCriterioRN->listar($objMdPetCriterioDTO);
393 398  
394 399 //Se não possui busca o padrão e cria um processo relacionado ao processo selecionado
395 400 if (count($arrObjCriterioIntercorrenteDTO) > 0) {
396 401 $ret = $arrObjCriterioIntercorrenteDTO[0];
397   - } else {
398   - $objMdPetCriterioPadraoDTO = new MdPetCriterioDTO();
  402 + }
  403 +
  404 + else {
  405 +
  406 + $objMdPetCriterioPadraoDTO = new MdPetCriterioDTO();
399 407 $objMdPetCriterioPadraoDTO->setStrSinCriterioPadrao('S');
400 408 $objMdPetCriterioPadraoDTO->retTodos();
401 409 $arrObjCriterioIntercorrenteDTO = $objMdPetCriterioRN->listar($objMdPetCriterioPadraoDTO);
  410 +
402 411 if (count($arrObjCriterioIntercorrenteDTO) <= 0) {
403 412 throw new InfraException ('Nenhum critério para Intercorrente Foi encontrado para o Tipo de Processo informado.');
404 413 }
  414 +
405 415 $ret = $arrObjCriterioIntercorrenteDTO[0];
  416 +
406 417 }
  418 +
407 419 return $ret;
  420 +
408 421 } catch (Exception $e) {
409 422 throw new InfraException('Erro consultando', $e);
410 423 }
... ...
sei/web/modulos/peticionamento/rn/MdPetIntercorrenteAndamentoSigilosoRN.php
... ... @@ -758,18 +758,120 @@ class MdPetIntercorrenteAndamentoSigilosoRN extends InfraRN
758 758 //método que retorna a unidade de abertura de processo novo relacionado ao processo sigiloso que foi informado pelo usuario na tela de processo intercorrente
759 759 public function retornaIdUnidadeAberturaProcessoConectado( $idProcedimento ){
760 760  
761   - //1 - obtendo TODAS as unidades por onde o processo ja tramitou
762   - $objProcedimentoDTO = new ProcedimentoDTO();
763   - $objProcedimentoDTO->setDblIdProcedimento( $idProcedimento );
  761 + //encontra a unidade de abertura e setar aqui
  762 + $idUnidadeSigiloso = null;
  763 + $unidadeRN = new UnidadeRN();
  764 +
  765 + //====================================================================================
  766 + //INICIO CASO 1 - Processo sigiloso que possui credencial apontada para unidade ativa
  767 + //====================================================================================
  768 + $acessoDTO = new AcessoDTO();
  769 + $acessoDTO->retNumIdUnidade();
  770 + $acessoDTO->setDblIdProtocolo( $idProcedimento );
  771 + $acessoDTO->setStrStaTipo( array( AcessoRN::$TA_CREDENCIAL_PROCESSO, AcessoRN::$TA_CREDENCIAL_ASSINATURA_PROCESSO ), InfraDTO::$OPER_IN );
  772 + $acessoDTO->setOrd('IdAcesso', InfraDTO::$TIPO_ORDENACAO_DESC );
  773 +
  774 + $acessoRN = new AcessoRN();
  775 + $arrCredenciaisComUnidadeValida = array();
  776 + $arrCredenciais = $acessoRN->listar( $acessoDTO );
  777 +
  778 + if( is_array( $arrCredenciais ) && count( $arrCredenciais ) > 0 ){
  779 +
  780 + foreach( $arrCredenciais as $itemCredencial ){
  781 +
  782 + //descobrir se a unidade vinculada a esta credencial ainda está ativa
  783 + $idUnidade = $itemCredencial->getNumIdUnidade();
  784 + $unidadeDTO = new UnidadeDTO();
  785 + $unidadeDTO->retNumIdUnidade();
  786 + $unidadeDTO->retStrSinAtivo();
  787 + $unidadeDTO->setNumIdUnidade( $idUnidade );
  788 + $unidadeDTO->setStrSinAtivo('S');
  789 +
  790 + $retUnidadeDTO = $unidadeRN->pesquisar( $unidadeDTO );
  791 +
  792 + //encontrou uma unidade ativa com credencial, usar ela
  793 + if( is_array( $retUnidadeDTO ) && count( $retUnidadeDTO ) > 0 && $retUnidadeDTO[0] != null && $retUnidadeDTO[0]->isSetNumIdUnidade() ){
  794 + $idUnidadeSigiloso = $retUnidadeDTO[0]->getNumIdUnidade();
  795 + return $idUnidadeSigiloso;
  796 + }
  797 + }
  798 + }
  799 +
  800 + //====================================================================================
  801 + //FIM CASO 1 - Processo sigiloso que possui credencial apontada para unidade ativa
  802 + //====================================================================================
  803 +
  804 + //====================================================================================
  805 + //CASO 2 - Processo sigiloso com andamento de Credencial cassada ou revogada apontada para unidade ativa
  806 + //====================================================================================
764 807  
765 808 $objAtividadeBD = new AtividadeBD( $this->getObjInfraIBanco() );
766 809 $objAtividadeDTO = new AtividadeDTO();
  810 + $objAtividadeDTO->retNumIdTarefa();
  811 + $objAtividadeDTO->retStrNomeTarefa();
767 812 $objAtividadeDTO->retNumIdAtividade();
768   - $objAtividadeDTO->setDistinct(true);
769 813 $objAtividadeDTO->retNumIdUnidade();
770 814 $objAtividadeDTO->retStrSiglaUnidade();
771 815 $objAtividadeDTO->retStrDescricaoUnidade();
772 816  
  817 + $objAtividadeDTO->setNumIdTarefa(
  818 + array(
  819 + TarefaRN::$TI_PROCESSO_CASSACAO_CREDENCIAL,
  820 + TarefaRN::$TI_PROCESSO_CONCESSAO_CREDENCIAL,
  821 + TarefaRN::$TI_PROCESSO_CONCESSAO_CREDENCIAL_CASSADA,
  822 + TarefaRN::$TI_PROCESSO_RENUNCIA_CREDENCIAL,
  823 + TarefaRN::$TI_PROCESSO_ATIVACAO_CREDENCIAL,
  824 + TarefaRN::$TI_PROCESSO_TRANSFERENCIA_CREDENCIAL,
  825 + TarefaRN::$TI_CONCESSAO_CREDENCIAL_ASSINATURA
  826 + ), InfraDTO::$OPER_IN);
  827 +
  828 + $objAtividadeDTO->setDblIdProtocolo( $idProcedimento );
  829 +
  830 + //ordenando pelo id da atividade, obtendo a ordem cronologica da tramitacao
  831 + $objAtividadeDTO->setOrdNumIdAtividade(InfraDTO::$TIPO_ORDENACAO_DESC);
  832 +
  833 + //echo $objAtividadeBD->listar( $objAtividadeDTO, true ); die;
  834 + $arrObjAtividadeDTO = $objAtividadeBD->listar( $objAtividadeDTO );
  835 +
  836 + // print_r( $arrObjAtividadeDTO ); die;
  837 +
  838 + if( is_array( $arrObjAtividadeDTO ) && count( $arrObjAtividadeDTO ) > 0){
  839 +
  840 + foreach( $arrObjAtividadeDTO as $atividade ){
  841 +
  842 + //verificando se a unidade desta atividade está ativa
  843 + $idUnidade = $atividade->getNumIdUnidade();
  844 +
  845 + $unidadeDTO = new UnidadeDTO();
  846 + $unidadeDTO->retNumIdUnidade();
  847 + $unidadeDTO->retStrSinAtivo();
  848 + $unidadeDTO->setNumIdUnidade( $idUnidade );
  849 +
  850 + $unidadeDTO = $unidadeRN->consultarRN0125( $unidadeDTO );
  851 +
  852 + //verificar se a unidade está ativa
  853 + if( $unidadeDTO->getStrSinAtivo() == 'S' ){
  854 +
  855 + $idUnidadeSigiloso = $unidadeDTO->getNumIdUnidade();
  856 + return $idUnidadeSigiloso;
  857 +
  858 + }
  859 +
  860 + }
  861 +
  862 + }
  863 +
  864 + //====================================================================================
  865 + //CASO 3 - Nao possui credencial apontada para unidade ativa, os andamentos de concessao e revogaçao de credencial nao estao apontados para unidade ativa
  866 + // Resta fazer a checagem "padrao" em todo o andamento do processo para ver a ultima unidade ativa por onde o processo tramitou
  867 + //====================================================================================
  868 +
  869 + //1 - obtendo TODAS as unidades por onde o processo ja tramitou
  870 + $objAtividadeDTO = new AtividadeDTO();
  871 + $objAtividadeDTO->retNumIdAtividade();
  872 + $objAtividadeDTO->retNumIdUnidade();
  873 + $objAtividadeDTO->retStrSiglaUnidade();
  874 +
773 875 /*
774 876 * Tarefas que implicam na abertura do processo na Unidade (ID/Nome):
775 877 * MESCLANDO TAREFAS DE PROCESSOS PUBLICO/RESTRITO + SIGILOSO
... ... @@ -777,20 +879,17 @@ class MdPetIntercorrenteAndamentoSigilosoRN extends InfraRN
777 879 21 - Remoção de sobrestamento
778 880 29 - Reabertura do processo na unidade
779 881 32 - Processo remetido pela unidade @UNIDADE@
780   - 61 - Credencial concedida para o usuário @USUARIO@
781   - 64 - Reabertura do processo
782   - 66 - Transferência de credencial
783   - 73 - Concessão de credencial para assinatura
784   - 118 - Ativação de credencial por Coordenador de Acervo para o usuário @USUARIO@ */
  882 + 64 - Reabertura do processo
  883 + */
785 884  
786   - $objAtividadeDTO->setNumIdTarefa(array(TarefaRN::$TI_GERACAO_PROCEDIMENTO,
  885 + $objAtividadeDTO->setNumIdTarefa(
  886 + array(
  887 + TarefaRN::$TI_GERACAO_PROCEDIMENTO,
787 888 TarefaRN::$TI_REMOCAO_SOBRESTAMENTO,
788 889 TarefaRN::$TI_REABERTURA_PROCESSO_UNIDADE,
789 890 TarefaRN::$TI_PROCESSO_REMETIDO_UNIDADE,
790   - TarefaRN::$TI_PROCESSO_CONCESSAO_CREDENCIAL,
791   - TarefaRN::$TI_REABERTURA_PROCESSO_USUARIO,
792   - TarefaRN::$TI_CONCESSAO_CREDENCIAL_ASSINATURA,
793   - TarefaRN::$TI_PROCESSO_ATIVACAO_CREDENCIAL),InfraDTO::$OPER_IN);
  891 + TarefaRN::$TI_REABERTURA_PROCESSO_USUARIO
  892 + ), InfraDTO::$OPER_IN);
794 893  
795 894 $objAtividadeDTO->setDblIdProtocolo( $idProcedimento );
796 895  
... ... @@ -798,12 +897,11 @@ class MdPetIntercorrenteAndamentoSigilosoRN extends InfraRN
798 897 $objAtividadeDTO->setOrdNumIdAtividade(InfraDTO::$TIPO_ORDENACAO_DESC);
799 898  
800 899 $arrObjAtividadeDTO = $objAtividadeBD->listar($objAtividadeDTO);
801   - $unidadeRN = new UnidadeRN();
  900 +
  901 + //print_r( $arrObjAtividadeDTO ); die;
802 902  
803 903 if( is_array( $arrObjAtividadeDTO ) && count( $arrObjAtividadeDTO ) > 0){
804   -
805   - $idUltimaUnidadeRetorno = $this->retornaUltimaUnidadeProcessoSigilosoAberto( $idProcedimento );
806   -
  904 +
807 905 foreach( $arrObjAtividadeDTO as $atividade ){
808 906  
809 907 $idUnidade = $atividade->getNumIdUnidade();
... ... @@ -814,35 +912,28 @@ class MdPetIntercorrenteAndamentoSigilosoRN extends InfraRN
814 912 $unidadeDTO->setNumIdUnidade( $idUnidade );
815 913  
816 914 $unidadeDTO = $unidadeRN->consultarRN0125( $unidadeDTO );
817   - print_r( $unidadeDTO ); die;
818 915  
819 916 //1- verificar se a unidade está ativa
820   - if( $unidadeDTO->getStrSinAtivo() == 'S' ){
821   -
822   - //2 - descobrindo se o processo ainda está aberto nesta unidade
823   - $isProcessoAbertoNessaUnidade = true;
824   -
825   - if( $isProcessoAbertoNessaUnidade ){
826   - return $atividade->getNumIdUnidade();
827   - }
  917 + if( $unidadeDTO != null && $unidadeDTO->getStrSinAtivo() == 'S' ){
828 918  
829   - } else {
  919 + $idUnidadeSigiloso = $unidadeDTO->getNumIdUnidade();
  920 + return $idUnidadeSigiloso;
830 921  
831   - echo "Unidade desativada"; die;
832   - }
  922 + }
833 923  
834 924 }
835   -
836   - //se chegar aqui sem ter dado return é porque o processo nao está aberto em nenhuma unidade
837   - return null;
838   -
  925 +
839 926 }
840 927  
841   - //se nao estiver aberto em nenhuma unidade retorna null
842   - else {
843   - return null;
  928 + //====================================================================================
  929 + //CASO 4 - Nao há nenhuma unidade ativa dentre aquelas em que o processo tramitou, deve dar erro / msg de validação
  930 + //====================================================================================
  931 + if( $idUnidadeSigiloso == null ){
  932 +
844 933 }
845 934  
  935 + return $idUnidadeSigiloso;
  936 +
846 937 }
847 938  
848 939 /**
... ... @@ -896,8 +987,8 @@ protected function retornaUltimaUnidadeProcessoSigilosoAbertoConectado($idProced
896 987  
897 988 //lista de unidades nas quais o processo ainda encontra-se aberto
898 989 $arrUnidadesAbertas = $saidaConsultarProcedimentoAPI->getUnidadesProcedimentoAberto();
899   - echo "Unidades em que está aberto";
900   - print_r( $arrUnidadesAbertas ); die;
  990 + //echo "Unidades em que está aberto";
  991 + //print_r( $arrUnidadesAbertas ); die;
901 992  
902 993 //o processo encontra-se aberto em pelo menos uma unidade
903 994 if( is_array( $arrUnidadesAbertas ) && count( $arrUnidadesAbertas ) > 0 ){
... ...
sei/web/modulos/peticionamento/rn/MdPetIntercorrenteProcessoRN.php
1 1 <?
2 2 /**
3   -* ANATEL
4   -*
5   -* 25/11/2016 - criado por marcelo.bezerra - CAST
6   -*
7   -*/
  3 + * ANATEL
  4 + *
  5 + * 25/11/2016 - criado por marcelo.bezerra - CAST
  6 + *
  7 + */
8 8  
9 9 require_once dirname(__FILE__).'/../../../SEI.php';
10 10  
11 11 class MdPetIntercorrenteProcessoRN extends MdPetProcessoRN {
12   -
  12 +
13 13 public static $FORMATO_DIGITALIZADO = 'D';
14 14 public static $FORMATO_NATO_DIGITAL = 'N';
15   -
16   - private $objAcessoExternoDTO = null;
17   - private $objUsuarioDTO = null;
18   - private $objCargoDTO = null;
19   - private $objOrgaoDTO = null;
20   - private $objUnidadeDTO = null;
21   - private $objProcedimentoDTO = null;
22   - private $senha = null;
23   - private $reciboDTO = null;
24   - private $participantesDTO = null;
25   - private $documentoRecibo = null;
26   - private $arrDocumentos = array();
27   -
28   -
29   - private $tipoConferenciaAlterado = false;
  15 +
  16 + private $objAcessoExternoDTO = null;
  17 + private $objUsuarioDTO = null;
  18 + private $objCargoDTO = null;
  19 + private $objOrgaoDTO = null;
  20 + private $objUnidadeDTO = null;
  21 + private $objProcedimentoDTO = null;
  22 + private $senha = null;
  23 + private $reciboDTO = null;
  24 + private $participantesDTO = null;
  25 + private $documentoRecibo = null;
  26 + private $arrDocumentos = array();
  27 +
  28 + //guarda o id da maior atividade de liberacao de acesso externo para comparar na hora de limpar o historico
  29 + private $maxIdAtividade = 0;
  30 +
  31 +
  32 + private $tipoConferenciaAlterado = false;
30 33  
31 34 public function __construct() {
32 35 parent::__construct ();
... ... @@ -36,7 +39,7 @@ class MdPetIntercorrenteProcessoRN extends MdPetProcessoRN {
36 39 protected function inicializarObjInfraIBanco() {
37 40 return BancoSEI::getInstance ();
38 41 }
39   -
  42 +
40 43 /**
41 44 * Short description of method validarUnidadeProcessoConectado
42 45 * Valida se as unidades dos processos abertos para esse procedimento estão ativas
... ... @@ -46,16 +49,16 @@ class MdPetIntercorrenteProcessoRN extends MdPetProcessoRN {
46 49 * @return boolean
47 50 */
48 51 protected function validarUnidadeProcessoConectado($objProcedimentoDTO){
49   - $objAtividadeRN = new AtividadeRN();
50   - $arrObjUnidadeDTO = $objAtividadeRN->listarUnidadesTramitacao($objProcedimentoDTO);
51   -
  52 + $objAtividadeRN = new AtividadeRN();
  53 + $arrObjUnidadeDTO = $objAtividadeRN->listarUnidadesTramitacao($objProcedimentoDTO);
  54 +
52 55 if(count($arrObjUnidadeDTO) == 0){
53 56 return false;
54 57 }
55   -
  58 +
56 59 return true;
57 60 }
58   -
  61 +
59 62 /**
60 63 * Short description of method pesquisarProtocoloFormatadoConectado
61 64 * Pesquisa o processo exatamente como foi digitado SEM considerar a formatação
... ... @@ -74,38 +77,38 @@ class MdPetIntercorrenteProcessoRN extends MdPetProcessoRN {
74 77 $objProtocoloDTOPesquisa->retStrStaProtocolo();
75 78 $objProtocoloDTOPesquisa->retStrStaNivelAcessoGlobal();
76 79 $objProtocoloDTOPesquisa->setNumMaxRegistrosRetorno(2);
77   -
  80 +
78 81 $strProtocoloPesquisa = InfraUtil::retirarFormatacao($parObjProtocoloDTO->getStrProtocoloFormatadoPesquisa(),false);
79   -
  82 +
80 83 $objProtocoloDTOPesquisa->setStrProtocoloFormatadoPesquisa($strProtocoloPesquisa);
81 84 $arrObjProtocoloDTO = $objProtocoloRN->listarRN0668($objProtocoloDTOPesquisa);
82   -
  85 +
83 86 if (count($arrObjProtocoloDTO) > 1) {
84 87 return null;
85 88 }
86   -
  89 +
87 90 if (count($arrObjProtocoloDTO) == 1) {
88 91 return $arrObjProtocoloDTO[0];
89 92 }
90   -
91   -
  93 +
  94 +
92 95 return null;
93   -
  96 +
94 97 }catch(Exception $e){
95 98 throw new InfraException('Erro pesquisando protocolo.',$e);
96 99 }
97 100 }
98   -
99   - /**
100   - * Retorna a ultima unidade que o processo foi
101   - * Pesquisa o processo exatamente como foi digitado SEM considerar a formatação
102   - * @access protected
103   - * @author Jaqueline Mendes <jaqueline.mendes@cast.com.br>
104   - * @param ProtocoloDTO $parObjProtocoloDTO
105   - * @return mixed
106   - */
  101 +
  102 + /**
  103 + * Retorna a ultima unidade que o processo foi
  104 + * Pesquisa o processo exatamente como foi digitado SEM considerar a formatação
  105 + * @access protected
  106 + * @author Jaqueline Mendes <jaqueline.mendes@cast.com.br>
  107 + * @param ProtocoloDTO $parObjProtocoloDTO
  108 + * @return mixed
  109 + */
107 110 protected function retornaUltimaUnidadeProcessoConcluidoConectado(AtividadeDTO $objAtividadeDTO){
108   -
  111 +
109 112 $idUnidadeReabrirProcesso = null;
110 113 $objAtividadeRN = new AtividadeRN();
111 114 $objAtividadeDTO->retDthConclusao();
... ... @@ -116,93 +119,94 @@ class MdPetIntercorrenteProcessoRN extends MdPetProcessoRN {
116 119 if(!is_null($objUltimaAtvProcesso)) {
117 120 $idUnidadeReabrirProcesso = $objUltimaAtvProcesso->getNumIdUnidade();
118 121 }
119   -
  122 +
120 123 return $idUnidadeReabrirProcesso;
121 124 }
122   -
123   - protected function gerarProcedimentoApi($params)
124   - {
125   - $objProcedimentoDTO = $params[0];
126   - $objCriterioIntercorrenteDTO = $params[1];
127   - //$arrObjDocumentoAPI = $params[2];
128   - $especificacao = $params[2];
129   -
130   - $protocoloDTO = new ProtocoloDTO();
131   - $protocoloDTO->retTodos();
132   - $protocoloDTO->setDblIdProtocolo( $objProcedimentoDTO->getDblIdProcedimento() );
133   - $protocoloRN = new ProtocoloRN();
134   - $protocoloDTO = $protocoloRN->consultarRN0186( $protocoloDTO );
135   -
136   - // Verifica se o processo é anexado, se for, retorna a unidade do processo pai.
137   - if($objProcedimentoDTO->getStrStaEstadoProtocolo() == ProtocoloRN::$TE_PROCEDIMENTO_ANEXADO){
138   - $objRelProtocoloProtocoloDTO = new RelProtocoloProtocoloDTO();
139   - $objRelProtocoloProtocoloDTO->retDblIdProtocolo1();
140   - $objRelProtocoloProtocoloDTO->retStrProtocoloFormatadoProtocolo1();
141   - $objRelProtocoloProtocoloDTO->setDblIdProtocolo2($objProcedimentoDTO->getDblIdProcedimento());
142   - $objRelProtocoloProtocoloDTO->setStrStaAssociacao(RelProtocoloProtocoloRN::$TA_PROCEDIMENTO_ANEXADO);
143   -
144   - $objRelProtocoloProtocoloRN = new RelProtocoloProtocoloRN();
145   - $objRelProtocoloProtocoloDTO = $objRelProtocoloProtocoloRN->consultarRN0841($objRelProtocoloProtocoloDTO);
146   -
147   - $idUnidadeAbrirNovoProcesso = $this->retornaUltimaUnidadeProcessoAberto($objRelProtocoloProtocoloDTO->getDblIdProtocolo1());
148   - }else if($protocoloDTO->getStrStaNivelAcessoLocal() == ProtocoloRN::$NA_SIGILOSO ||
149   - $protocoloDTO->getStrStaNivelAcessoGlobal == ProtocoloRN::$NA_SIGILOSO ){
150   -
151   - $objMdPetIntercorrenteAndamentoSigiloso = new MdPetIntercorrenteAndamentoSigilosoRN();
152   -
153   - $idUnidadeAbrirNovoProcesso = $objMdPetIntercorrenteAndamentoSigiloso->retornaIdUnidadeAberturaProcesso( $objProcedimentoDTO->getDblIdProcedimento() );
154   -
155   - }else{
156   - $idUnidadeAbrirNovoProcesso = $this->retornaUltimaUnidadeProcessoAberto($objProcedimentoDTO->getDblIdProcedimento());
157   - }
158   -
159   - // inicio da verificação da unidade ativa, caso não esteja tenta buscar uma unidade ativa para reabrir o processo.
160   - $unidadeDTO = new UnidadeDTO();
161   - $unidadeDTO->retTodos();
162   - $unidadeDTO->setBolExclusaoLogica(false);
163   - $unidadeDTO->setNumIdUnidade($idUnidadeAbrirNovoProcesso);
164   - $unidadeRN = new UnidadeRN();
165   - $objUnidadeDTO = $unidadeRN->consultarRN0125($unidadeDTO);
166   -
167   - if($objUnidadeDTO->getStrSinAtivo() == 'N'){
168   - $idUnidadeAbrirNovoProcesso = null;
169   - $objAtividadeRN = new MdPetIntercorrenteAtividadeRN();
170   - $arrObjUnidadeDTO = $objAtividadeRN->listarUnidadesTramitacao($objProcedimentoDTO);
171   -
172   - foreach ($arrObjUnidadeDTO as $itemObjUnidadeDTO) {
173   - if ($itemObjUnidadeDTO->getStrSinAtivo() == 'S') {
174   - $idUnidadeAbrirNovoProcesso = $itemObjUnidadeDTO->getNumIdUnidade();
175   - }
176   - }
177   - }
178   -
179   - if($idUnidadeAbrirNovoProcesso == null) {
180   - $objInfraException = new InfraException();
181   - $objInfraException->adicionarValidacao('O processo indicado não aceita peticionamento intercorrente. Utilize o Peticionamento de Processo Novo para protocolizar sua demanda.');
182   - $objInfraException->lancarValidacoes();
183   - return false;
184   - }
185   - // fim da verificação da unidade ativa
186   -
187   - // Salva um processo do tipo padrão selecionado
188   - $this->simularLogin($idUnidadeAbrirNovoProcesso);
189   -
190   - $objEntradaGerarProcedimentoAPI = new EntradaGerarProcedimentoAPI();
191   - $arrProcedimentoRelacionado = array($objProcedimentoDTO->getDblIdProcedimento());
192   -
193   - $objProcedimentoAPI = new ProcedimentoAPI();
194   -
  125 +
  126 + protected function gerarProcedimentoApi($params)
  127 + {
  128 + $objProcedimentoDTO = $params[0];
  129 + $objCriterioIntercorrenteDTO = $params[1];
  130 + //$arrObjDocumentoAPI = $params[2];
  131 + $especificacao = $params[2];
  132 +
  133 + $protocoloDTO = new ProtocoloDTO();
  134 + $protocoloDTO->retTodos();
  135 + $protocoloDTO->setDblIdProtocolo( $objProcedimentoDTO->getDblIdProcedimento() );
  136 + $protocoloRN = new ProtocoloRN();
  137 + $protocoloDTO = $protocoloRN->consultarRN0186( $protocoloDTO );
  138 +
  139 + // Verifica se o processo é anexado, se for, retorna a unidade do processo pai.
  140 + if($objProcedimentoDTO->getStrStaEstadoProtocolo() == ProtocoloRN::$TE_PROCEDIMENTO_ANEXADO){
  141 +
  142 + $objRelProtocoloProtocoloDTO = new RelProtocoloProtocoloDTO();
  143 + $objRelProtocoloProtocoloDTO->retDblIdProtocolo1();
  144 + $objRelProtocoloProtocoloDTO->retStrProtocoloFormatadoProtocolo1();
  145 + $objRelProtocoloProtocoloDTO->setDblIdProtocolo2($objProcedimentoDTO->getDblIdProcedimento());
  146 + $objRelProtocoloProtocoloDTO->setStrStaAssociacao(RelProtocoloProtocoloRN::$TA_PROCEDIMENTO_ANEXADO);
  147 +
  148 + $objRelProtocoloProtocoloRN = new RelProtocoloProtocoloRN();
  149 + $objRelProtocoloProtocoloDTO = $objRelProtocoloProtocoloRN->consultarRN0841($objRelProtocoloProtocoloDTO);
  150 +
  151 + $idUnidadeAbrirNovoProcesso = $this->retornaUltimaUnidadeProcessoAberto($objRelProtocoloProtocoloDTO->getDblIdProtocolo1());
  152 + }else if($protocoloDTO->getStrStaNivelAcessoLocal() == ProtocoloRN::$NA_SIGILOSO ||
  153 + $protocoloDTO->getStrStaNivelAcessoGlobal() == ProtocoloRN::$NA_SIGILOSO ){
  154 +
  155 + $objMdPetIntercorrenteAndamentoSigiloso = new MdPetIntercorrenteAndamentoSigilosoRN();
  156 +
  157 + $idUnidadeAbrirNovoProcesso = $objMdPetIntercorrenteAndamentoSigiloso->retornaIdUnidadeAberturaProcesso( $objProcedimentoDTO->getDblIdProcedimento() );
  158 +
  159 + }else{
  160 + $idUnidadeAbrirNovoProcesso = $this->retornaUltimaUnidadeProcessoAberto($objProcedimentoDTO->getDblIdProcedimento());
  161 + }
  162 +
  163 + // inicio da verificação da unidade ativa, caso não esteja tenta buscar uma unidade ativa para reabrir o processo.
  164 + $unidadeDTO = new UnidadeDTO();
  165 + $unidadeDTO->retTodos();
  166 + $unidadeDTO->setBolExclusaoLogica(false);
  167 + $unidadeDTO->setNumIdUnidade($idUnidadeAbrirNovoProcesso);
  168 + $unidadeRN = new UnidadeRN();
  169 + $objUnidadeDTO = $unidadeRN->consultarRN0125($unidadeDTO);
  170 +
  171 + if($objUnidadeDTO->getStrSinAtivo() == 'N'){
  172 + $idUnidadeAbrirNovoProcesso = null;
  173 + $objAtividadeRN = new MdPetIntercorrenteAtividadeRN();
  174 + $arrObjUnidadeDTO = $objAtividadeRN->listarUnidadesTramitacao($objProcedimentoDTO);
  175 +
  176 + foreach ($arrObjUnidadeDTO as $itemObjUnidadeDTO) {
  177 + if ($itemObjUnidadeDTO->getStrSinAtivo() == 'S') {
  178 + $idUnidadeAbrirNovoProcesso = $itemObjUnidadeDTO->getNumIdUnidade();
  179 + }
  180 + }
  181 + }
  182 +
  183 + if($idUnidadeAbrirNovoProcesso == null) {
  184 + $objInfraException = new InfraException();
  185 + $objInfraException->adicionarValidacao('O processo indicado não aceita peticionamento intercorrente. Utilize o Peticionamento de Processo Novo para protocolizar sua demanda.');
  186 + $objInfraException->lancarValidacoes();
  187 + return false;
  188 + }
  189 + // fim da verificação da unidade ativa
  190 +
  191 + // Salva um processo do tipo padrão selecionado
  192 + $this->simularLogin($idUnidadeAbrirNovoProcesso);
  193 +
  194 + $objEntradaGerarProcedimentoAPI = new EntradaGerarProcedimentoAPI();
  195 + $arrProcedimentoRelacionado = array($objProcedimentoDTO->getDblIdProcedimento());
  196 +
  197 + $objProcedimentoAPI = new ProcedimentoAPI();
  198 +
195 199 //Tipo Procedimento
196 200 $objTipoProcedimentoDTO = new TipoProcedimentoDTO();
197 201 $objTipoProcedimentoDTO->setBolExclusaoLogica(false);
198 202 $objTipoProcedimentoDTO->setDistinct(true);
199 203 $objTipoProcedimentoDTO->retStrSinAtivo();
200 204 $objTipoProcedimentoDTO->setNumIdTipoProcedimento($objProcedimentoDTO->getNumIdTipoProcedimento());
201   -
  205 +
202 206 $objTipoProcedimentoRN = new TipoProcedimentoRN();
203 207 $arrObjTipoProcedimentoDTO = $objTipoProcedimentoRN->listarRN0244($objTipoProcedimentoDTO);
204   -
205   - if (count($arrObjTipoProcedimentoDTO)==1) {
  208 +
  209 + if (count($arrObjTipoProcedimentoDTO)==1 && $objCriterioIntercorrenteDTO->getStrSinCriterioPadrao()!='S') {
206 210 $objTipoProcedimentoDTO = $arrObjTipoProcedimentoDTO[0];
207 211 if ($objTipoProcedimentoDTO->getStrSinAtivo()=='S'){
208 212 $objProcedimentoAPI->setIdTipoProcedimento($objProcedimentoDTO->getNumIdTipoProcedimento());
... ... @@ -210,133 +214,133 @@ class MdPetIntercorrenteProcessoRN extends MdPetProcessoRN {
210 214 $objProcedimentoAPI->setIdTipoProcedimento($objCriterioIntercorrenteDTO->getNumIdTipoProcedimento());
211 215 }
212 216 }else{
213   - $objProcedimentoAPI->setIdTipoProcedimento($objCriterioIntercorrenteDTO->getNumIdTipoProcedimento());
  217 + $objProcedimentoAPI->setIdTipoProcedimento($objCriterioIntercorrenteDTO->getNumIdTipoProcedimento());
214 218 }
215 219 // Tipo Procedimento - fim
216   -
217   - if ($especificacao!=null){
218   - $objProcedimentoAPI->setEspecificacao( $especificacao );
219   - }
220   -
221   -
222   - $objEntradaGerarProcedimentoAPI->setProcedimento($objProcedimentoAPI);
223   - $objEntradaGerarProcedimentoAPI->setProcedimentosRelacionados($arrProcedimentoRelacionado);
224   - //$objEntradaGerarProcedimentoAPI->setDocumentos($arrObjDocumentoAPI);
225   - $objSEIRN = new SeiRN();
226   - return $objSEIRN->gerarProcedimento($objEntradaGerarProcedimentoAPI);
227   - }
228   -
229   - /**
230   - * Função responsável por Retornar a última unidade em que o processo ESTÀ aberto agora
231   - * @param $idProcedimento
232   - * @return string $idUnidade
233   - */
234   - protected function retornaUltimaUnidadeProcessoAbertoConectado($idProcedimento){
235   -
236   - $objSEIRN = new SeiRN();
237   - $objProcedimentoDTO = new ProcedimentoDTO();
238   - $objProcedimentoDTO->retTodos(true);
239   - $objProcedimentoDTO->setDblIdProcedimento($idProcedimento);
240   - $objProcedimentoRN = new ProcedimentoRN();
241   - $objProcedimentoDTO = $objProcedimentoRN->consultarRN0201($objProcedimentoDTO);
242   -
243   - $objEntradaConsultaProcApi = new EntradaConsultarProcedimentoAPI();
244   - $objEntradaConsultaProcApi->setIdProcedimento($idProcedimento);
245   - $objEntradaConsultaProcApi->setSinRetornarUnidadesProcedimentoAberto('S');
246   - $objEntradaConsultaProcApi->setSinRetornarUltimoAndamento('S');
247   - $objEntradaConsultaProcApi->setSinRetornarAndamentoConclusao('N');
248   -
249   - /**
250   - * @var $saidaConsultarProcedimentoAPI SaidaConsultarProcedimentoAPI
251   - */
252   - if($objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo() == ProtocoloRN::$NA_SIGILOSO ||
253   - $objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_SIGILOSO){
254   - $md = new MdPetIntercorrenteAndamentoSigilosoRN();
255   - $saidaConsultarProcedimentoAPI = $md->consultarProcedimento($objEntradaConsultaProcApi);
256   - } else {
257   - $saidaConsultarProcedimentoAPI = $objSEIRN->consultarProcedimento($objEntradaConsultaProcApi);
258   - }
259   -
260   - //informaçoes da tarefa de conclusao de processo na unidade
261   - $tarefaRN = new TarefaRN();
262   - $tarefaDTO = new TarefaDTO();
263   - $tarefaDTO->retNumIdTarefa( );
264   - $tarefaDTO->retStrNome( );
265   - $tarefaDTO->setNumIdTarefa( TarefaRN::$TI_CONCLUSAO_PROCESSO_UNIDADE );
266   - $arrTarefaDTO = $tarefaRN->listar( $tarefaDTO );
267   - $tarefaDTO = $arrTarefaDTO[0];
268   -
269   - //lista de unidades nas quais o processo ainda encontra-se aberto
270   - $arrUnidadesAbertas = $saidaConsultarProcedimentoAPI->getUnidadesProcedimentoAberto();
271   -
272   - //o processo encontra-se aberto em pelo menos uma unidade
273   - if( is_array( $arrUnidadesAbertas ) && count( $arrUnidadesAbertas ) > 0 ){
274   -
275   - $objEntradaAndamentos = new EntradaListarAndamentosAPI();
276   - $objEntradaAndamentos->setIdProcedimento( $idProcedimento );
277   - $objEntradaAndamentos->setTarefas( array( TarefaRN::$TI_GERACAO_PROCEDIMENTO , TarefaRN::$TI_REABERTURA_PROCESSO_UNIDADE, TarefaRN::$TI_PROCESSO_REMETIDO_UNIDADE ) );
278   - $arrAndamentos = $objSEIRN->listarAndamentos( $objEntradaAndamentos );
279   -
280   - $arrIdUnidade = array();
281   -
282   - foreach( $arrUnidadesAbertas as $unidadeAberta ){
283   - $arrIdUnidade[] = $unidadeAberta->getUnidade()->getIdUnidade();
284   - }
285   -
286   - foreach( $arrAndamentos as $andamento ){
287   -
288   - $idUnidadeAndamento = $andamento->getUnidade()->getIdUnidade();
289   -
290   - if( in_array( $idUnidadeAndamento, $arrIdUnidade ) ){
291   - return $idUnidadeAndamento;
292   - }
293   -
294   - }
295   -
296   - }
297   -
298   - //o processo nao esta aberto em nenhuma unidade, nao ha id para ser retornado
299   - else {
300   - return null;
301   - }
302   -
303   - }
304   -
305   - /**
306   - * Função responsável por Retornar todas as unidades em que o processo está aberto
307   - * buscado em: ProcedimentoINT.php - montarAcoesArvore() - linhas 766 a 870
308   - * @param $idProcedimento
309   - * @return AtividadeDTO $arrObjAtividadeDTO
310   - * @since 07/03/2017
311   - * @author CAST - castgroup.com.br
312   - */
313   - protected function retornaUnidadesProcessoAbertoConectado($idProcedimento){
314   -
  220 +
  221 + if ($especificacao!=null){
  222 + $objProcedimentoAPI->setEspecificacao( $especificacao );
  223 + }
  224 +
  225 +
  226 + $objEntradaGerarProcedimentoAPI->setProcedimento($objProcedimentoAPI);
  227 + $objEntradaGerarProcedimentoAPI->setProcedimentosRelacionados($arrProcedimentoRelacionado);
  228 + //$objEntradaGerarProcedimentoAPI->setDocumentos($arrObjDocumentoAPI);
  229 + $objSEIRN = new SeiRN();
  230 + return $objSEIRN->gerarProcedimento($objEntradaGerarProcedimentoAPI);
  231 + }
  232 +
  233 + /**
  234 + * Função responsável por Retornar a última unidade em que o processo ESTÀ aberto agora
  235 + * @param $idProcedimento
  236 + * @return string $idUnidade
  237 + */
  238 + protected function retornaUltimaUnidadeProcessoAbertoConectado($idProcedimento){
  239 +
  240 + $objSEIRN = new SeiRN();
  241 + $objProcedimentoDTO = new ProcedimentoDTO();
  242 + $objProcedimentoDTO->retTodos(true);
  243 + $objProcedimentoDTO->setDblIdProcedimento($idProcedimento);
  244 + $objProcedimentoRN = new ProcedimentoRN();
  245 + $objProcedimentoDTO = $objProcedimentoRN->consultarRN0201($objProcedimentoDTO);
  246 +
  247 + $objEntradaConsultaProcApi = new EntradaConsultarProcedimentoAPI();
  248 + $objEntradaConsultaProcApi->setIdProcedimento($idProcedimento);
  249 + $objEntradaConsultaProcApi->setSinRetornarUnidadesProcedimentoAberto('S');
  250 + $objEntradaConsultaProcApi->setSinRetornarUltimoAndamento('S');
  251 + $objEntradaConsultaProcApi->setSinRetornarAndamentoConclusao('N');
  252 +
  253 + /**
  254 + * @var $saidaConsultarProcedimentoAPI SaidaConsultarProcedimentoAPI
  255 + */
  256 + if($objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo() == ProtocoloRN::$NA_SIGILOSO ||
  257 + $objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_SIGILOSO){
  258 + $md = new MdPetIntercorrenteAndamentoSigilosoRN();
  259 + $saidaConsultarProcedimentoAPI = $md->consultarProcedimento($objEntradaConsultaProcApi);
  260 + } else {
  261 + $saidaConsultarProcedimentoAPI = $objSEIRN->consultarProcedimento($objEntradaConsultaProcApi);
  262 + }
  263 +
  264 + //informaçoes da tarefa de conclusao de processo na unidade
  265 + $tarefaRN = new TarefaRN();
  266 + $tarefaDTO = new TarefaDTO();
  267 + $tarefaDTO->retNumIdTarefa( );
  268 + $tarefaDTO->retStrNome( );
  269 + $tarefaDTO->setNumIdTarefa( TarefaRN::$TI_CONCLUSAO_PROCESSO_UNIDADE );
  270 + $arrTarefaDTO = $tarefaRN->listar( $tarefaDTO );
  271 + $tarefaDTO = $arrTarefaDTO[0];
  272 +
  273 + //lista de unidades nas quais o processo ainda encontra-se aberto
  274 + $arrUnidadesAbertas = $saidaConsultarProcedimentoAPI->getUnidadesProcedimentoAberto();
  275 +
  276 + //o processo encontra-se aberto em pelo menos uma unidade
  277 + if( is_array( $arrUnidadesAbertas ) && count( $arrUnidadesAbertas ) > 0 ){
  278 +
  279 + $objEntradaAndamentos = new EntradaListarAndamentosAPI();
  280 + $objEntradaAndamentos->setIdProcedimento( $idProcedimento );
  281 + $objEntradaAndamentos->setTarefas( array( TarefaRN::$TI_GERACAO_PROCEDIMENTO , TarefaRN::$TI_REABERTURA_PROCESSO_UNIDADE, TarefaRN::$TI_PROCESSO_REMETIDO_UNIDADE ) );
  282 + $arrAndamentos = $objSEIRN->listarAndamentos( $objEntradaAndamentos );
  283 +
  284 + $arrIdUnidade = array();
  285 +
  286 + foreach( $arrUnidadesAbertas as $unidadeAberta ){
  287 + $arrIdUnidade[] = $unidadeAberta->getUnidade()->getIdUnidade();
  288 + }
  289 +
  290 + foreach( $arrAndamentos as $andamento ){
  291 +
  292 + $idUnidadeAndamento = $andamento->getUnidade()->getIdUnidade();
  293 +
  294 + if( in_array( $idUnidadeAndamento, $arrIdUnidade ) ){
  295 + return $idUnidadeAndamento;
  296 + }
  297 +
  298 + }
  299 +
  300 + }
  301 +
  302 + //o processo nao esta aberto em nenhuma unidade, nao ha id para ser retornado
  303 + else {
  304 + return null;
  305 + }
  306 +
  307 + }
  308 +
  309 + /**
  310 + * Função responsável por Retornar todas as unidades em que o processo está aberto
  311 + * buscado em: ProcedimentoINT.php - montarAcoesArvore() - linhas 766 a 870
  312 + * @param $idProcedimento
  313 + * @return AtividadeDTO $arrObjAtividadeDTO
  314 + * @since 07/03/2017
  315 + * @author CAST - castgroup.com.br
  316 + */
  317 + protected function retornaUnidadesProcessoAbertoConectado($idProcedimento){
  318 +
315 319 $arrAtividade = array();
316   -
  320 +
317 321 $objProcedimentoDTO = new ProcedimentoDTO();
318 322 $objProcedimentoDTO->setDblIdProcedimento($idProcedimento);
319 323 $objProcedimentoDTO->retStrStaNivelAcessoGlobalProtocolo();
320 324 $objProcedimentoDTO->retStrStaEstadoProtocolo();
321   -
  325 +
322 326 $objProcedimentoRN = new ProcedimentoRN();
323 327 $objProcedimentoDTO = $objProcedimentoRN->consultarRN0201($objProcedimentoDTO);
324 328 $strStaNivelAcessoGlobal = $objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo();
325   -
  329 +
326 330 $bolFlagSobrestado = false;
327 331 if ($objProcedimentoDTO->getStrStaEstadoProtocolo()==ProtocoloRN::$TE_PROCEDIMENTO_SOBRESTADO){
328 332 $bolFlagSobrestado = true;
329 333 }
330   -
  334 +
331 335 $objAtividadeRN = new AtividadeRN();
332 336 $objAtividadeDTO = new AtividadeDTO();
333 337 $objAtividadeDTO->setDistinct(true);
334 338 $objAtividadeDTO->retNumIdUnidade();
335 339 $objAtividadeDTO->retStrSiglaUnidade();
336 340 $objAtividadeDTO->retStrDescricaoUnidade();
337   -
  341 +
338 342 $objAtividadeDTO->setOrdStrSiglaUnidade(InfraDTO::$TIPO_ORDENACAO_ASC);
339   -
  343 +
340 344 if ($strStaNivelAcessoGlobal==ProtocoloRN::$NA_SIGILOSO){
341 345 $objAtividadeDTO->retNumIdUsuario();
342 346 $objAtividadeDTO->retStrSiglaUsuario();
... ... @@ -345,14 +349,14 @@ class MdPetIntercorrenteProcessoRN extends MdPetProcessoRN {
345 349 $objAtividadeDTO->retNumIdUsuarioAtribuicao();
346 350 $objAtividadeDTO->retStrSiglaUsuarioAtribuicao();
347 351 $objAtividadeDTO->retStrNomeUsuarioAtribuicao();
348   -
  352 +
349 353 //ordena descendente pois no envio de processo que já existe na unidade e está atribuído ficará com mais de um andamento em aberto
350 354 //desta forma os andamentos com usuário nulo (envios do processo) serão listados depois
351 355 $objAtividadeDTO->setOrdStrSiglaUsuarioAtribuicao(InfraDTO::$TIPO_ORDENACAO_DESC);
352 356 }
353 357 $objAtividadeDTO->setDblIdProtocolo($idProcedimento);
354 358 $objAtividadeDTO->setDthConclusao(null);
355   -
  359 +
356 360 //sigiloso sem credencial nao considera o usuario atual
357 361 if ($strStaNivelAcessoGlobal==ProtocoloRN::$NA_SIGILOSO){
358 362 $objAcessoDTO = new AcessoDTO();
... ... @@ -360,69 +364,81 @@ class MdPetIntercorrenteProcessoRN extends MdPetProcessoRN {
360 364 $objAcessoDTO->retNumIdUsuario();
361 365 $objAcessoDTO->setDblIdProtocolo($dblIdProcedimento);
362 366 $objAcessoDTO->setStrStaTipo(AcessoRN::$TA_CREDENCIAL_PROCESSO);
363   -
  367 +
364 368 $objAcessoRN = new AcessoRN();
365 369 $arrObjAcessoDTO = $objAcessoRN->listar($objAcessoDTO);
366   -
  370 +
367 371 $objAtividadeDTO->setNumIdUsuario(InfraArray::converterArrInfraDTO($arrObjAcessoDTO,'IdUsuario'),InfraDTO::$OPER_IN);
368 372 }
369   -
  373 +
370 374 $arrObjAtividadeDTO = $objAtividadeRN->listarRN0036($objAtividadeDTO);
371   -
  375 +
372 376 if ($strStaNivelAcessoGlobal!=ProtocoloRN::$NA_SIGILOSO){
373   - //filtra andamentos com indicação de usuário atribuído
  377 + //filtra andamentos com indicação de usuário atribuído
374 378 $arrObjAtividadeDTO = InfraArray::distinctArrInfraDTO($arrObjAtividadeDTO,'SiglaUnidade');
375 379 }
376 380 return $arrObjAtividadeDTO;
377   - }
378   -
379   - protected function incluirDocumentosApi($objProcedimentoDTO, $arrObjDocumentoAPI)
380   - {
381   - $arrObjReciboDocPet = array();
382   - $objSEIRN = new SeiRN();
383   - $idUnidadeProcesso = $this->retornaUltimaUnidadeProcessoAberto($objProcedimentoDTO->getDblIdProcedimento());
384   -
385   -
386   - // inicio da verificação da unidade ativa, caso não esteja tenta buscar uma unidade ativa para reabrir o processo.
387   - $unidadeDTO = new UnidadeDTO();
388   - $unidadeDTO->retTodos();
389   - $unidadeDTO->setBolExclusaoLogica(false);
390   - $unidadeDTO->setNumIdUnidade($idUnidadeProcesso);
391   - $unidadeRN = new UnidadeRN();
392   - $objUnidadeDTO = $unidadeRN->consultarRN0125($unidadeDTO);
393   -
394   - if($objUnidadeDTO->getStrSinAtivo() == 'N'){
395   - $idUnidadeProcesso = null;
396   - $objAtividadeRN = new AtividadeRN();
397   - $arrObjAtividadeDTO = $objAtividadeRN->listarUnidadesTramitacao($objProcedimentoDTO);
398   -
399   - foreach ($arrObjAtividadeDTO as $itemObjAtividadeDTO) {
400   - $unidadeDTO = new UnidadeDTO();
401   - $unidadeDTO->retTodos();
402   - $unidadeDTO->setBolExclusaoLogica(false);
403   - $unidadeDTO->setNumIdUnidade($itemObjAtividadeDTO->getNumIdUnidade());
404   - $unidadeRN = new UnidadeRN();
405   - $objUnidadeDTO = $unidadeRN->consultarRN0125($unidadeDTO);
406   -
407   -
408   - if ($objUnidadeDTO->getStrSinAtivo() == 'S') {
409   - $idUnidadeProcesso = $objUnidadeDTO->getNumIdUnidade();
410   - }
411   - }
412   - }
413   -
414   -
415   -
416   - $this->simularLogin($idUnidadeProcesso);
417   -
418   - foreach ($arrObjDocumentoAPI as $documentoAPI) {
419   - /* @var $documentoAPI DocumentoAPI */
420   - $saidaIncluirDocumentoAPI = $objSEIRN->incluirDocumento($documentoAPI);
421   -
  381 + }
  382 +
  383 + protected function incluirDocumentosApi($objProcedimentoDTO, $arrObjDocumentoAPI)
  384 + {
  385 + $arrObjReciboDocPet = array();
  386 + $objSEIRN = new SeiRN();
  387 + $idUnidadeProcesso = $this->retornaUltimaUnidadeProcessoAberto($objProcedimentoDTO->getDblIdProcedimento());
  388 +
  389 + // inicio da verificação da unidade ativa, caso não esteja tenta buscar uma unidade ativa para reabrir o processo.
  390 + $unidadeDTO = new UnidadeDTO();
  391 + $unidadeDTO->retTodos();
  392 + $unidadeDTO->setBolExclusaoLogica(false);
  393 + $unidadeDTO->retStrSinAtivo();
  394 + $unidadeDTO->setNumIdUnidade($idUnidadeProcesso);
  395 + $unidadeRN = new UnidadeRN();
  396 + $objUnidadeDTO = $unidadeRN->consultarRN0125($unidadeDTO);
  397 +
  398 + //resolver um problema de " Call to a member function getStrSinAtivo() on null"
  399 + if( $objUnidadeDTO == null || !$objUnidadeDTO->isSetStrSinAtivo() || $objUnidadeDTO->getStrSinAtivo() == 'N'){
  400 +
  401 + $idUnidadeProcesso = null;
  402 + $objAtividadeRN = new AtividadeRN();
  403 + $arrObjAtividadeDTO = $objAtividadeRN->listarUnidadesTramitacao($objProcedimentoDTO);
  404 +
  405 + foreach ($arrObjAtividadeDTO as $itemObjAtividadeDTO) {
  406 +
  407 + $unidadeDTO = new UnidadeDTO();
  408 + $unidadeDTO->retTodos();
  409 + $unidadeDTO->setBolExclusaoLogica(false);
  410 + $unidadeDTO->setNumIdUnidade($itemObjAtividadeDTO->getNumIdUnidade());
  411 + $unidadeRN = new UnidadeRN();
  412 + $objUnidadeDTO = $unidadeRN->consultarRN0125($unidadeDTO);
  413 +
  414 +
  415 + if ($objUnidadeDTO->getStrSinAtivo() == 'S') {
  416 + $idUnidadeProcesso = $objUnidadeDTO->getNumIdUnidade();
  417 + }
  418 +
  419 + }
  420 + }
  421 +
  422 +
  423 + if( $idUnidadeProcesso == null ){
  424 +
  425 + //trata-se de processo sigiloso global
  426 + $objMdPetIntercorrenteAndamentoSigilosoRN = new MdPetIntercorrenteAndamentoSigilosoRN();
  427 + $idUnidadeProcesso = $objMdPetIntercorrenteAndamentoSigilosoRN->retornaIdUnidadeAberturaProcesso( $_POST['id_procedimento'] );
  428 +
  429 + }
  430 +
  431 + $this->simularLogin( $idUnidadeProcesso );
  432 +
  433 + foreach ($arrObjDocumentoAPI as $documentoAPI) {
  434 +
  435 + /* @var $documentoAPI DocumentoAPI */
  436 + $saidaIncluirDocumentoAPI = $objSEIRN->incluirDocumento($documentoAPI);
  437 +
422 438 // Remententes
423 439 $idsParticipantes = array();
424 440 $idsInteressados = array();
425   -
  441 +
426 442 $objParticipante = new ParticipanteDTO();
427 443 $objParticipante->setDblIdProtocolo($saidaIncluirDocumentoAPI->getIdDocumento());
428 444 $objParticipante->setNumIdContato($this->getContatoDTOUsuarioLogado()->getNumIdContato());
... ... @@ -430,9 +446,10 @@ class MdPetIntercorrenteProcessoRN extends MdPetProcessoRN {
430 446 $objParticipante->setStrStaParticipacao(ParticipanteRN::$TP_REMETENTE);
431 447 $objParticipante->setNumSequencia(0);
432 448 $idsParticipantes[] = $objParticipante;
433   -
  449 +
434 450 //Interessados
435 451 // Processo Principal - Interessados
  452 + /*
436 453 $objParticipanteProcPrincDTO = new ParticipanteDTO();
437 454 $objParticipanteProcPrincDTO->retNumIdParticipante();
438 455 $objParticipanteProcPrincDTO->retNumIdContato();
... ... @@ -440,648 +457,687 @@ class MdPetIntercorrenteProcessoRN extends MdPetProcessoRN {
440 457 $objParticipanteProcPrincDTO->retStrStaParticipacao();
441 458 $objParticipanteProcPrincDTO->retStrNomeContato();
442 459 $objParticipanteProcPrincDTO->retNumSequencia();
443   - $objParticipanteProcPrincDTO->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento());
444   - $objParticipanteProcPrincDTO->setStrStaParticipacao(ParticipanteRN::$TP_INTERESSADO);
445   -
  460 + $objParticipanteProcPrincDTO->setDblIdProtocolo( $objProcedimentoDTO->getDblIdProcedimento() );
  461 + $objParticipanteProcPrincDTO->setStrStaParticipacao( ParticipanteRN::$TP_INTERESSADO );
  462 + $objParticipanteProcPrincDTO->setNumIdUnidade( $idUnidadeProcesso );
  463 +
446 464 $objParticipanteProcPrincRN = new ParticipanteRN();
447   - $arrobjParticipanteProcPrinc = $objParticipanteProcPrincRN->listarRN0189($objParticipanteProcPrincDTO);
  465 + $arrobjParticipanteProcPrinc = $objParticipanteProcPrincRN->listarRN0189($objParticipanteProcPrincDTO);
448 466 // Processo Principal - Interessados - FIM
449   -
  467 +
450 468 // Processo - Interessados
451 469 $i=0;
452 470 foreach($arrobjParticipanteProcPrinc as $objParticipanteProcPrinc){
453 471 $objParticipante = new ParticipanteDTO();
454 472 $objParticipante->setDblIdProtocolo($saidaIncluirDocumentoAPI->getIdDocumento());
455 473 $objParticipante->setNumIdContato($objParticipanteProcPrinc->getNumIdContato());
456   - $objParticipante->setNumIdUnidade($objParticipanteProcPrinc->getNumIdUnidade());
  474 + //$objParticipante->setNumIdUnidade($objParticipanteProcPrinc->getNumIdUnidade());
  475 + $objParticipante->setNumIdUnidade( $idUnidadeProcesso );
457 476 $objParticipante->setStrStaParticipacao(ParticipanteRN::$TP_INTERESSADO);
458 477 $objParticipante->setNumSequencia($i);
459 478 $idsParticipantes[] = $objParticipante;
460 479 $idsInteressados[] = $objParticipante;
461 480 $i++;
462 481 }
463   -
  482 + */
  483 +
464 484 $objMdPetParticipanteRN = new MdPetParticipanteRN();
465 485 $arrInteressado = array();
466 486 $arrInteressado[0] = $saidaIncluirDocumentoAPI->getIdDocumento();
467 487 $arrInteressado[1] = $idsParticipantes;
468 488 //$arrInteressado[2] = $idsRemententes;
469   -
470   - $objMdPetParticipanteRN->setInteressadosRemetentesProcedimentoDocumento( $arrInteressado );
471   -
  489 +
  490 + $objMdPetParticipanteRN->setInteressadosRemetentesProcedimentoDocumento( $arrInteressado );
  491 +
472 492 // Processo - Interessados - FIM
473   -
  493 +
474 494 $formato = MdPetIntercorrenteINT::retornaTipoFormatoDocumento($saidaIncluirDocumentoAPI);
475 495 $objReciboDocAnexPetDTO = MdPetIntercorrenteINT::retornaObjReciboDocPreenchido(array($saidaIncluirDocumentoAPI->getIdDocumento(), $formato));
476 496 array_push($arrObjReciboDocPet, $objReciboDocAnexPetDTO);
477 497 $this->assinarETravarDocumento($saidaIncluirDocumentoAPI);
478   -
  498 +
479 499 //Participantes - Atualizando
480 500 $this->setParticipante($idsInteressados);
481   -
482   - }
483   - return $arrObjReciboDocPet;
484   - }
485   -
486   - private function abrirDocumentoParaAssinatura($dblIdDocumento)
487   - {
488   - $documentoRN = new DocumentoRN();
489   - $documentoBD = new DocumentoBD( $this->getObjInfraIBanco() );
490   -
491   - $documentoDTO = new DocumentoDTO();
492   - //$documentoDTO->retDblIdDocumento();
493   - //$documentoDTO->retNumIdTipoConferencia();
494   - $documentoDTO->retTodos(true);
495   - $documentoDTO->setDblIdDocumento( $dblIdDocumento );
496   - $documentoDTO = $documentoRN->consultarRN0005( $documentoDTO );
497   -
498   - $this->tipoConferenciaAlterado = false;
499   - //setar temporariamente e depois remover da entidade
500   - if(! $documentoDTO->getNumIdTipoConferencia() ){
501   - // buscando o menor tipo de conferencia
502   - $tipoConferenciaDTOConsulta = new TipoConferenciaDTO();
503   - $tipoConferenciaDTOConsulta->retTodos();
504   - $tipoConferenciaDTOConsulta->setStrSinAtivo('S');
505   - $tipoConferenciaDTOConsulta->setOrd('IdTipoConferencia', InfraDTO::$TIPO_ORDENACAO_ASC);
506   - $tipoConferenciaRN = new TipoConferenciaRN();
507   - $arrTipoConferenciaDTO = $tipoConferenciaRN->listar($tipoConferenciaDTOConsulta);
508   - $numIdTipoConferencia = $arrTipoConferenciaDTO[0]->getNumIdTipoConferencia();
509   - // fim buscando o menor tipo de conferencia
510   -
511   - //setando um tipo de conferencia padrao (que sera removido depois), apenas para passar na validação
512   - $documentoDTO->setNumIdTipoConferencia($numIdTipoConferencia);
513   - $documentoAlteracaoDTO = new DocumentoDTO();
514   - $documentoAlteracaoDTO->retDblIdDocumento();
515   - $documentoAlteracaoDTO->retNumIdTipoConferencia();
516   - $documentoAlteracaoDTO->setDblIdDocumento( $documentoDTO->getDblIdDocumento() );
517   - $documentoAlteracaoDTO = $documentoRN->consultarRN0005( $documentoAlteracaoDTO );
518   -
519   - $documentoAlteracaoDTO->setNumIdTipoConferencia($numIdTipoConferencia);
520   - $documentoBD->alterar( $documentoAlteracaoDTO );
521   - $this->tipoConferenciaAlterado = true;
522   - }
523   - return $documentoDTO;
524   - }
525   -
526   - private function fecharDocumentoParaAssinatura($documentoDTO)
527   - {
528   - $documentoBD = new DocumentoBD( $this->getObjInfraIBanco() );
529   - if( $this->tipoConferenciaAlterado ){
530   - $documentoDTO->setNumIdTipoConferencia(null);
531   - $documentoBD->alterar( $documentoDTO );
532   - }
533   - //nao aplicando metodo alterar da RN de Documento por conta de regras de negocio muito especificas aplicadas ali
534   - $documentoDTO->setStrSinBloqueado('S');
535   - $documentoBD->alterar( $documentoDTO );
536   - //remover a liberação de acesso externo //AcessoRN.excluir nao permite exclusao, por isso chame AcessoExternoBD diretamente daqui
537   - }
538   -
539   - private function abrirAcessoParaAssinatura($orgaoDTO, $documentoDTO, $objParticipanteDTO)
540   - {
541   - //liberando assinatura externa para o documento
542   - $objAcessoExternoDTO = new AcessoExternoDTO();
543   -
544   - //trocado de $TA_ASSINATURA_EXTERNA para $TA_SISTEMA para evitar o envio de email de notificação
545   - $objAcessoExternoDTO->setStrStaTipo(AcessoExternoRN::$TA_ASSINATURA_EXTERNA );
546   - $objAcessoExternoDTO->setStrEmailUnidade($orgaoDTO->getStrEmailContato() ); //informando o email do orgao associado a unidade
547   - $objAcessoExternoDTO->setDblIdDocumento( $documentoDTO->getDblIdDocumento() );
548   - $objAcessoExternoDTO->setNumIdParticipante( $objParticipanteDTO->getNumIdParticipante() );
549   - $objAcessoExternoDTO->setNumIdUsuarioExterno( SessaoSEIExterna::getInstance()->getNumIdUsuarioExterno() );
550   - $objAcessoExternoDTO->setStrSinProcesso('N'); //visualizacao integral do processo
551   -
552   - $objMdPetAcessoExternoRN = new MdPetAcessoExternoRN();
553   - $this->objAcessoExternoDTO = $objMdPetAcessoExternoRN->cadastrar($objAcessoExternoDTO);
554   - }
555   -
556   - private function fecharAcessoParaAssinatura()
557   - {
558   - $objAcessoExternoBD = new AcessoExternoBD($this->getObjInfraIBanco());
559   - $objAcessoExternoBD->excluir( $this->objAcessoExternoDTO );
560   - }
561   -
562   - private function retornarParticipante($objUsuarioDTO, $objUnidadeDTO, $objProcedimentoDTO)
563   - {
564   - $objParticipanteDTO = new ParticipanteDTO();
565   - $objParticipanteDTO->retTodos(true);
566   - $objParticipanteDTO->retStrSiglaContato();
567   - $objParticipanteDTO->retStrNomeContato();
568   - $objParticipanteDTO->retNumIdUnidade();
569   - $objParticipanteDTO->retDblIdProtocolo();
570   - $objParticipanteDTO->retNumIdParticipante();
571   - //FK de BD (ak1_participante) trata somente id_contato, id_protocolo, sta_participacao, então desconsiderar unidade
572   - //$objParticipanteDTO->setNumIdUnidade( $objUnidadeDTO->getNumIdUnidade() );
573   - $objParticipanteDTO->setNumIdContato( $objUsuarioDTO->getNumIdContato() );
574   - $objParticipanteDTO->setDblIdProtocolo( $objProcedimentoDTO->getDblIdProcedimento() );
575   -
576   - $objParticipanteRN = new ParticipanteRN();
577   - $arrObjParticipanteDTO = $objParticipanteRN->listarRN0189($objParticipanteDTO);
578   -
579   - if( $arrObjParticipanteDTO == null || count( $arrObjParticipanteDTO ) == 0){
580   - //cadastrar o participante
581   - $objParticipanteDTO = new ParticipanteDTO();
582   - $objParticipanteDTO->setNumIdContato( $objUsuarioDTO->getNumIdContato() );
583   - $objParticipanteDTO->setDblIdProtocolo( $objProcedimentoDTO->getDblIdProcedimento() );
584   - $objParticipanteDTO->setStrStaParticipacao( ParticipanteRN::$TP_ACESSO_EXTERNO );
585   - $objParticipanteDTO->setNumIdUnidade( $objUnidadeDTO->getNumIdUnidade() );
586   - $objParticipanteDTO->setNumSequencia(0);
587   -
588   - $participanteDTO = $objParticipanteRN->cadastrarRN0170( $objParticipanteDTO );
589   -
590   - $objParticipanteDTO = new ParticipanteDTO();
591   - $objParticipanteDTO->retTodos(true);
592   - $objParticipanteDTO->setNumIdParticipante( $participanteDTO->getNumIdParticipante() );
593   - $ret = $objParticipanteRN->consultarRN1008($objParticipanteDTO);
594   - //$idParticipante = $objParticipanteDTO->getNumIdParticipante();
595   - } else {
596   - $ret = $arrObjParticipanteDTO[0];
597   - }
598   - $this->setParticipante($ret);
599   - return $ret;
600   - }
601   -
602   - private function assinarETravarDocumento( $documento )
603   - {
604   - //consultar email da unidade (orgao)
605   - //$this->carregarObjetos($idCargo, );
606   - $orgaoDTO = $this->getOrgaoDTO();
607   - $cargoDTO = $this->getCargoDTO();
608   - $objUsuarioDTO = $this->getUsuarioDTO();
609   - $objUnidadeDTO = $this->getUnidadeDTO();
610   - $objProcedimentoDTO = $this->getProcedimentoDTO();
611   -
612   - $documentoDTO = $documento;
613   - if($documento instanceof SaidaIncluirDocumentoAPI){
614   - $dlbIdDocumento = $documento->getIdDocumento();
615   - } else {
616   - $dlbIdDocumento = $documento->getDblIdDocumento();
617   - }
618   - $documentoDTO = $this->abrirDocumentoParaAssinatura($dlbIdDocumento);
619   - $objParticipanteDTO = $this->retornarParticipante($objUsuarioDTO, $objUnidadeDTO, $objProcedimentoDTO);
620   -
621   - $this->abrirAcessoParaAssinatura($orgaoDTO, $documentoDTO, $objParticipanteDTO);
622   - $objAssinaturaDTO = new AssinaturaDTO();
623   - $objAssinaturaDTO->setStrStaFormaAutenticacao(AssinaturaRN::$TA_SENHA);
624   - $objAssinaturaDTO->setNumIdUsuario(SessaoSEIExterna::getInstance()->getNumIdUsuarioExterno() );
625   - $objAssinaturaDTO->setStrSenhaUsuario( $this->getSenha() );
626   - $objAssinaturaDTO->setStrCargoFuncao( "Usuário Externo - " . $cargoDTO->getStrExpressao() );
627   - $objAssinaturaDTO->setArrObjDocumentoDTO(array($documentoDTO));
628   -
629   - $objMdPetDocumentoRN = new MdPetDocumentoRN();
630   - $objAssinaturaDTO = $objMdPetDocumentoRN->assinar($objAssinaturaDTO);
631   - $this->addDocumentos($documentoDTO);
632   - $this->fecharDocumentoParaAssinatura($documentoDTO);
633   - $this->fecharAcessoParaAssinatura();
634   - return $objAssinaturaDTO;
635   - }
636   -
637   - private function retornarDocumentosRecibo($objSaidaGerarProcedimentoAPI) {
638   - $arrObjReciboDocPet = array();
639   - $objRetornoDocs = $objSaidaGerarProcedimentoAPI->getRetornoInclusaoDocumentos();
640   - $arrRetornoTpFormato = MdPetIntercorrenteINT::retornaTipoFormatoDocumento($objRetornoDocs);
641   -
642   - $formato = null;
643   - foreach($objRetornoDocs as $doc){
644   - if(array_key_exists($doc->getIdDocumento(), $arrRetornoTpFormato)){
645   - $formato = $arrRetornoTpFormato[$doc->getIdDocumento()];
646   - }
647   - $objReciboDocAnexPetDTO = MdPetIntercorrenteINT::retornaObjReciboDocPreenchido(array($doc->getIdDocumento(), $formato));
648   - array_push($arrObjReciboDocPet, $objReciboDocAnexPetDTO);
649   - }
650   - return $arrObjReciboDocPet;
651   - }
652   -
653   - /**
654   - * @param $params
655   - * @return DocumentoDTO
656   - */
657   - private function montarReciboIntercorrente($params)
658   - {
659   - $arrParams = array(
660   - $params,
661   - $this->getUnidadeDTO(),
662   - $this->getProcedimentoDTO(),
663   - $this->getParticipanteDTO(),
664   - $this->getReciboDTO(),
665   - $this->getDocumentos()
666   - );
667   -
668   - $objMdPetReciboIntercorrenteRN = new MdPetReciboIntercorrenteRN();
669   - return $objMdPetReciboIntercorrenteRN->montarRecibo($arrParams);
670   - }
671   -
672   - protected function cadastrarReciboDocumentoAnexoConectado($params)
673   - {
674   - $objMdPetReciboDTO = $params[0];
675   - $arrObjReciboDocPet = $params[1];
676   -
677   - $objMdPetRelReciboDocumentoAnexoRN = new MdPetRelReciboDocumentoAnexoRN();
678   -
679   - $numIdReciboPeticionamento = $objMdPetReciboDTO->getNumIdReciboPeticionamento();
680   - //Gerar Recibo Docs
681   - foreach($arrObjReciboDocPet as $objReciboDocPet){
682   - //Remover Depois - Campo está como NOT NULL, deve ser NULL na adaptação
683   - $objReciboDocPet->setStrClassificacaoDocumento('A');
684   - $objReciboDocPet->setNumIdReciboPeticionamento($numIdReciboPeticionamento);
685   - $objMdPetRelReciboDocumentoAnexoRN->cadastrar($objReciboDocPet);
686   - }
687   - }
688   -
689   - protected function enviarEmailConectado($params)
690   - {
691   - $arrParams = array();
692   - $arrParams[0] = $params;
693   - $arrParams[1] = $this->getUnidadeDTO();
694   - $arrParams[2] = $this->getProcedimentoDTO();
695   - $arrParams[3] = array($this->getParticipanteDTO());
696   - $arrParams[4] = $this->getReciboDTO();
697   - $arrParams[5] = $this->getDocumentoRecibo();
698   -
699   - $emailMdPetEmailNotificacaoIntercorrenteRN = new MdPetEmailNotificacaoIntercorrenteRN();
700   - return $emailMdPetEmailNotificacaoIntercorrenteRN->notificaoPeticionamentoExterno( $arrParams );
701   -
702   - //return $this->notificaoPetIntercorrenteExterno($arrParams);
703   - }
704   -
705   - protected function cadastrarControlado($params)
706   - {
707   - // Bloco de validações
708   - $this->validarCadastro($params);
709   -
710   - // setando atributos que serão utilizados em outros métodos
711   - $this->setCargoDTO($params['selCargo']);
712   - $this->setSenha($params['senhaSEI']);
713   -
714   - //Busca o Procedimento Principal
715   - $objProcedimentoDTO = new ProcedimentoDTO();
716   - $objProcedimentoRN = new ProcedimentoRN();
717   - $objProcedimentoDTO->setDblIdProcedimento($params['id_procedimento']);
718   - $objProcedimentoDTO->retTodos(true);
719   - //$objProcedimentoDTO->retStrProtocoloProcedimentoFormatado();
720   - $objProcedimentoDTO = $objProcedimentoRN->consultarRN0201($objProcedimentoDTO);
721   -
722   - $objMdPetCriterioRN = new MdPetCriterioRN();
723   - $objCriterioIntercorrenteDTO = $objMdPetCriterioRN->retornarCriterioPorTipoProcesso($params['id_tipo_procedimento']);
724   -
725   - // Verifica se o processo possui critério intercorrente cadastrado
726   - //Se não possui busca o padrão e cria um processo relacionado ao processo selecionado
727   - $arrObjReciboDocPet = array();
728   - $arrDadosRecibo = array();
729   - $arrDadosRecibo['idProcedimento'] = $params['id_procedimento'];
730   -
731   - // Remententes
  501 +
  502 + }
  503 + return $arrObjReciboDocPet;
  504 + }
  505 +
  506 + private function abrirDocumentoParaAssinatura($dblIdDocumento)
  507 + {
  508 + $documentoRN = new DocumentoRN();
  509 + $documentoBD = new DocumentoBD( $this->getObjInfraIBanco() );
  510 +
  511 + $documentoDTO = new DocumentoDTO();
  512 + //$documentoDTO->retDblIdDocumento();
  513 + //$documentoDTO->retNumIdTipoConferencia();
  514 + $documentoDTO->retTodos(true);
  515 + $documentoDTO->setDblIdDocumento( $dblIdDocumento );
  516 + $documentoDTO = $documentoRN->consultarRN0005( $documentoDTO );
  517 +
  518 + $this->tipoConferenciaAlterado = false;
  519 + //setar temporariamente e depois remover da entidade
  520 + if(! $documentoDTO->getNumIdTipoConferencia() ){
  521 + // buscando o menor tipo de conferencia
  522 + $tipoConferenciaDTOConsulta = new TipoConferenciaDTO();
  523 + $tipoConferenciaDTOConsulta->retTodos();
  524 + $tipoConferenciaDTOConsulta->setStrSinAtivo('S');
  525 + $tipoConferenciaDTOConsulta->setOrd('IdTipoConferencia', InfraDTO::$TIPO_ORDENACAO_ASC);
  526 + $tipoConferenciaRN = new TipoConferenciaRN();
  527 + $arrTipoConferenciaDTO = $tipoConferenciaRN->listar($tipoConferenciaDTOConsulta);
  528 + $numIdTipoConferencia = $arrTipoConferenciaDTO[0]->getNumIdTipoConferencia();
  529 + // fim buscando o menor tipo de conferencia
  530 +
  531 + //setando um tipo de conferencia padrao (que sera removido depois), apenas para passar na validação
  532 + $documentoDTO->setNumIdTipoConferencia($numIdTipoConferencia);
  533 + $documentoAlteracaoDTO = new DocumentoDTO();
  534 + $documentoAlteracaoDTO->retDblIdDocumento();
  535 + $documentoAlteracaoDTO->retNumIdTipoConferencia();
  536 + $documentoAlteracaoDTO->setDblIdDocumento( $documentoDTO->getDblIdDocumento() );
  537 + $documentoAlteracaoDTO = $documentoRN->consultarRN0005( $documentoAlteracaoDTO );
  538 +
  539 + $documentoAlteracaoDTO->setNumIdTipoConferencia($numIdTipoConferencia);
  540 + $documentoBD->alterar( $documentoAlteracaoDTO );
  541 + $this->tipoConferenciaAlterado = true;
  542 + }
  543 + return $documentoDTO;
  544 + }
  545 +
  546 + private function fecharDocumentoParaAssinatura($documentoDTO)
  547 + {
  548 + $documentoBD = new DocumentoBD( $this->getObjInfraIBanco() );
  549 + if( $this->tipoConferenciaAlterado ){
  550 + $documentoDTO->setNumIdTipoConferencia(null);
  551 + $documentoBD->alterar( $documentoDTO );
  552 + }
  553 + //nao aplicando metodo alterar da RN de Documento por conta de regras de negocio muito especificas aplicadas ali
  554 + $documentoDTO->setStrSinBloqueado('S');
  555 + $documentoBD->alterar( $documentoDTO );
  556 + //remover a liberação de acesso externo //AcessoRN.excluir nao permite exclusao, por isso chame AcessoExternoBD diretamente daqui
  557 + }
  558 +
  559 + private function abrirAcessoParaAssinatura($orgaoDTO, $documentoDTO, $objParticipanteDTO)
  560 + {
  561 + //liberando assinatura externa para o documento
  562 + $objAcessoExternoDTO = new AcessoExternoDTO();
  563 +
  564 + //trocado de $TA_ASSINATURA_EXTERNA para $TA_SISTEMA para evitar o envio de email de notificação
  565 + $objAcessoExternoDTO->setStrStaTipo(AcessoExternoRN::$TA_ASSINATURA_EXTERNA );
  566 + $objAcessoExternoDTO->setStrEmailUnidade($orgaoDTO->getStrEmailContato() ); //informando o email do orgao associado a unidade
  567 + $objAcessoExternoDTO->setDblIdDocumento( $documentoDTO->getDblIdDocumento() );
  568 + $objAcessoExternoDTO->setNumIdParticipante( $objParticipanteDTO->getNumIdParticipante() );
  569 + $objAcessoExternoDTO->setNumIdUsuarioExterno( SessaoSEIExterna::getInstance()->getNumIdUsuarioExterno() );
  570 + $objAcessoExternoDTO->setStrSinProcesso('N'); //visualizacao integral do processo
  571 +
  572 + $objMdPetAcessoExternoRN = new MdPetAcessoExternoRN();
  573 + $this->objAcessoExternoDTO = $objMdPetAcessoExternoRN->cadastrar($objAcessoExternoDTO);
  574 + }
  575 +
  576 + private function fecharAcessoParaAssinatura()
  577 + {
  578 + $objAcessoExternoBD = new AcessoExternoBD($this->getObjInfraIBanco());
  579 + $objAcessoExternoBD->excluir( $this->objAcessoExternoDTO );
  580 + }
  581 +
  582 + private function retornarParticipante($objUsuarioDTO, $objUnidadeDTO, $objProcedimentoDTO)
  583 + {
  584 + $objParticipanteDTO = new ParticipanteDTO();
  585 + $objParticipanteDTO->retTodos(true);
  586 + $objParticipanteDTO->retStrSiglaContato();
  587 + $objParticipanteDTO->retStrNomeContato();
  588 + $objParticipanteDTO->retNumIdUnidade();
  589 + $objParticipanteDTO->retDblIdProtocolo();
  590 + $objParticipanteDTO->retNumIdParticipante();
  591 + //FK de BD (ak1_participante) trata somente id_contato, id_protocolo, sta_participacao, então desconsiderar unidade
  592 + //$objParticipanteDTO->setNumIdUnidade( $objUnidadeDTO->getNumIdUnidade() );
  593 + $objParticipanteDTO->setNumIdContato( $objUsuarioDTO->getNumIdContato() );
  594 + $objParticipanteDTO->setDblIdProtocolo( $objProcedimentoDTO->getDblIdProcedimento() );
  595 +
  596 + $objParticipanteRN = new ParticipanteRN();
  597 + $arrObjParticipanteDTO = $objParticipanteRN->listarRN0189($objParticipanteDTO);
  598 +
  599 + if( $arrObjParticipanteDTO == null || count( $arrObjParticipanteDTO ) == 0){
  600 + //cadastrar o participante
  601 + $objParticipanteDTO = new ParticipanteDTO();
  602 + $objParticipanteDTO->setNumIdContato( $objUsuarioDTO->getNumIdContato() );
  603 + $objParticipanteDTO->setDblIdProtocolo( $objProcedimentoDTO->getDblIdProcedimento() );
  604 + $objParticipanteDTO->setStrStaParticipacao( ParticipanteRN::$TP_ACESSO_EXTERNO );
  605 + $objParticipanteDTO->setNumIdUnidade( $objUnidadeDTO->getNumIdUnidade() );
  606 + $objParticipanteDTO->setNumSequencia(0);
  607 +
  608 + $participanteDTO = $objParticipanteRN->cadastrarRN0170( $objParticipanteDTO );
  609 +
  610 + $objParticipanteDTO = new ParticipanteDTO();
  611 + $objParticipanteDTO->retTodos(true);
  612 + $objParticipanteDTO->setNumIdParticipante( $participanteDTO->getNumIdParticipante() );
  613 + $ret = $objParticipanteRN->consultarRN1008($objParticipanteDTO);
  614 + //$idParticipante = $objParticipanteDTO->getNumIdParticipante();
  615 + } else {
  616 + $ret = $arrObjParticipanteDTO[0];
  617 + }
  618 + $this->setParticipante($ret);
  619 + return $ret;
  620 + }
  621 +
  622 + private function assinarETravarDocumento( $documento )
  623 + {
  624 + //consultar email da unidade (orgao)
  625 + //$this->carregarObjetos($idCargo, );
  626 + $orgaoDTO = $this->getOrgaoDTO();
  627 + $cargoDTO = $this->getCargoDTO();
  628 + $objUsuarioDTO = $this->getUsuarioDTO();
  629 + $objUnidadeDTO = $this->getUnidadeDTO();
  630 + $objProcedimentoDTO = $this->getProcedimentoDTO();
  631 +
  632 + $documentoDTO = $documento;
  633 + if($documento instanceof SaidaIncluirDocumentoAPI){
  634 + $dlbIdDocumento = $documento->getIdDocumento();
  635 + } else {
  636 + $dlbIdDocumento = $documento->getDblIdDocumento();
  637 + }
  638 + $documentoDTO = $this->abrirDocumentoParaAssinatura($dlbIdDocumento);
  639 + $objParticipanteDTO = $this->retornarParticipante($objUsuarioDTO, $objUnidadeDTO, $objProcedimentoDTO);
  640 +
  641 + $this->abrirAcessoParaAssinatura($orgaoDTO, $documentoDTO, $objParticipanteDTO);
  642 + $objAssinaturaDTO = new AssinaturaDTO();
  643 + $objAssinaturaDTO->setStrStaFormaAutenticacao(AssinaturaRN::$TA_SENHA);
  644 + $objAssinaturaDTO->setNumIdUsuario(SessaoSEIExterna::getInstance()->getNumIdUsuarioExterno() );
  645 + $objAssinaturaDTO->setStrSenhaUsuario( $this->getSenha() );
  646 + $objAssinaturaDTO->setStrCargoFuncao( "Usuário Externo - " . $cargoDTO->getStrExpressao() );
  647 + $objAssinaturaDTO->setArrObjDocumentoDTO(array($documentoDTO));
  648 +
  649 + $objMdPetDocumentoRN = new MdPetDocumentoRN();
  650 + $objAssinaturaDTO = $objMdPetDocumentoRN->assinar($objAssinaturaDTO);
  651 + $this->addDocumentos($documentoDTO);
  652 + $this->fecharDocumentoParaAssinatura($documentoDTO);
  653 + $this->fecharAcessoParaAssinatura();
  654 + return $objAssinaturaDTO;
  655 + }
  656 +
  657 + private function retornarDocumentosRecibo($objSaidaGerarProcedimentoAPI) {
  658 + $arrObjReciboDocPet = array();
  659 + $objRetornoDocs = $objSaidaGerarProcedimentoAPI->getRetornoInclusaoDocumentos();
  660 + $arrRetornoTpFormato = MdPetIntercorrenteINT::retornaTipoFormatoDocumento($objRetornoDocs);
  661 +
  662 + $formato = null;
  663 + foreach($objRetornoDocs as $doc){
  664 + if(array_key_exists($doc->getIdDocumento(), $arrRetornoTpFormato)){
  665 + $formato = $arrRetornoTpFormato[$doc->getIdDocumento()];
  666 + }
  667 + $objReciboDocAnexPetDTO = MdPetIntercorrenteINT::retornaObjReciboDocPreenchido(array($doc->getIdDocumento(), $formato));
  668 + array_push($arrObjReciboDocPet, $objReciboDocAnexPetDTO);
  669 + }
  670 + return $arrObjReciboDocPet;
  671 + }
  672 +
  673 + /**
  674 + * @param $params
  675 + * @return DocumentoDTO
  676 + */
  677 + private function montarReciboIntercorrente($params)
  678 + {
  679 + $arrParams = array(
  680 + $params,
  681 + $this->getUnidadeDTO(),
  682 + $this->getProcedimentoDTO(),
  683 + $this->getParticipanteDTO(),
  684 + $this->getReciboDTO(),
  685 + $this->getDocumentos()
  686 + );
  687 +
  688 + $objMdPetReciboIntercorrenteRN = new MdPetReciboIntercorrenteRN();
  689 + return $objMdPetReciboIntercorrenteRN->montarRecibo($arrParams);
  690 + }
  691 +
  692 + protected function cadastrarReciboDocumentoAnexoConectado($params)
  693 + {
  694 + $objMdPetReciboDTO = $params[0];
  695 + $arrObjReciboDocPet = $params[1];
  696 +
  697 + $objMdPetRelReciboDocumentoAnexoRN = new MdPetRelReciboDocumentoAnexoRN();
  698 +
  699 + $numIdReciboPeticionamento = $objMdPetReciboDTO->getNumIdReciboPeticionamento();
  700 + //Gerar Recibo Docs
  701 + foreach($arrObjReciboDocPet as $objReciboDocPet){
  702 + //Remover Depois - Campo está como NOT NULL, deve ser NULL na adaptação
  703 + $objReciboDocPet->setStrClassificacaoDocumento('A');
  704 + $objReciboDocPet->setNumIdReciboPeticionamento($numIdReciboPeticionamento);
  705 + $objMdPetRelReciboDocumentoAnexoRN->cadastrar($objReciboDocPet);
  706 + }
  707 + }
  708 +
  709 + protected function enviarEmailConectado($params)
  710 + {
  711 + $arrParams = array();
  712 + $arrParams[0] = $params;
  713 + $arrParams[1] = $this->getUnidadeDTO();
  714 + $arrParams[2] = $this->getProcedimentoDTO();
  715 + $arrParams[3] = array($this->getParticipanteDTO());
  716 + $arrParams[4] = $this->getReciboDTO();
  717 + $arrParams[5] = $this->getDocumentoRecibo();
  718 +
  719 + $emailMdPetEmailNotificacaoIntercorrenteRN = new MdPetEmailNotificacaoIntercorrenteRN();
  720 + return $emailMdPetEmailNotificacaoIntercorrenteRN->notificaoPeticionamentoExterno( $arrParams );
  721 +
  722 + //return $this->notificaoPetIntercorrenteExterno($arrParams);
  723 + }
  724 +
  725 + protected function cadastrarControlado($params)
  726 + {
  727 + // Bloco de validações
  728 + $this->validarCadastro($params);
  729 +
  730 + $atividadeRN = new AtividadeRN();
  731 +
  732 + // setando atributos que serão utilizados em outros métodos
  733 + $this->setCargoDTO($params['selCargo']);
  734 + $this->setSenha($params['senhaSEI']);
  735 +
  736 + //Busca o Procedimento Principal
  737 + $objProcedimentoDTO = new ProcedimentoDTO();
  738 + $objProcedimentoRN = new ProcedimentoRN();
  739 + $objProcedimentoDTO->setDblIdProcedimento($params['id_procedimento']);
  740 + $objProcedimentoDTO->retTodos(true);
  741 + //$objProcedimentoDTO->retStrProtocoloProcedimentoFormatado();
  742 + $objProcedimentoDTO = $objProcedimentoRN->consultarRN0201($objProcedimentoDTO);
  743 +
  744 + $objMdPetCriterioRN = new MdPetCriterioRN();
  745 + $objCriterioIntercorrenteDTO = $objMdPetCriterioRN->retornarCriterioPorTipoProcesso($params['id_tipo_procedimento']);
  746 +
  747 + // Verifica se o processo possui critério intercorrente cadastrado
  748 + //Se não possui busca o padrão e cria um processo relacionado ao processo selecionado
  749 + $arrObjReciboDocPet = array();
  750 + $arrDadosRecibo = array();
  751 + $arrDadosRecibo['idProcedimento'] = $params['id_procedimento'];
  752 +
  753 + // Remententes
732 754 $contatoDTOUsuarioLogado = $this->getContatoDTOUsuarioLogado();
733 755 $idsRemententes = array();
734 756 $idsRemententes[] = $contatoDTOUsuarioLogado->getNumIdContato();
735   -
736   - $estadosReabrirRelacionado = array(ProtocoloRN::$TE_PROCEDIMENTO_SOBRESTADO, ProtocoloRN::$TE_PROCEDIMENTO_ANEXADO, ProtocoloRN::$TE_PROCEDIMENTO_BLOQUEADO);
737   - /**
738   - * Verifica se:
739   - * 1 - Se o processo eh sigiloso (nivel de acesso global ou local eh igual a 2)
740   - * 2 - Se o Tipo do Processo do procedimento informado nao possui um intercorrente cadastrado(neste caso irah utilizar o Intercorrente Padrao)
741   - */
742   - $params['diretoProcessoIndicado']=false;
743   - if ($objCriterioIntercorrenteDTO->getStrSinCriterioPadrao() == 'S'
744   - || $objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo() == ProtocoloRN::$NA_SIGILOSO
745   - || $objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_SIGILOSO
746   - || in_array($objProcedimentoDTO->getStrStaEstadoProtocolo(), $estadosReabrirRelacionado)) {
747   -
748   - $especificacao = 'Peticionamento Intercorrente relacionado ao Processo nº ' . $objProcedimentoDTO->getStrProtocoloProcedimentoFormatado();
749   - $objSaidaGerarProcedimentoAPI = $this->gerarProcedimentoApi(array($objProcedimentoDTO, $objCriterioIntercorrenteDTO, $especificacao));
750   -
751   - $arrDadosRecibo['idProcedimentoRel'] = $params['id_procedimento'];
752   - $arrDadosRecibo['idProcedimento'] = $objSaidaGerarProcedimentoAPI->getIdProcedimento();
753   - $params['id_procedimento'] = $objSaidaGerarProcedimentoAPI->getIdProcedimento();
754   - //Se possui critérios intercorrentes setta os documentos no processo existente
755   - $this->setProcedimentoDTO($objSaidaGerarProcedimentoAPI->getIdProcedimento());
756   - }
757   -
758   - //SE o criterio existe, e NAO é o criterio padrao, tenta incluir documento no proprio processo (caso o mesmo esteja aberto) ou reabrir o processo (caso o mesmo esteja fechado)
759   - else if( $objCriterioIntercorrenteDTO != null &&
760   - $objCriterioIntercorrenteDTO->getStrSinCriterioPadrao() == 'N') {
761   -
762   - //se for necessario, executar reabertura do processo
763   - $reaberturaRN = new MdPetIntercorrenteReaberturaRN();
764   -
765   - if( $reaberturaRN->isNecessarioReabrirProcedimento( $objProcedimentoDTO ) ) {
766   - $reaberturaRN->reabrirProcessoApi($objProcedimentoDTO);
767   - }
768   -
769   - $params['diretoProcessoIndicado']=true;
770   -
771   - $this->setProcedimentoDTO($params['id_procedimento']);
772   - }
773   -
774   -
775   - if($objProcedimentoDTO->getStrStaEstadoProtocolo() == 3){
776   - $objRelProtocoloProtocoloDTO = new RelProtocoloProtocoloDTO();
777   - $objRelProtocoloProtocoloDTO->retDblIdProtocolo1();
778   - $objRelProtocoloProtocoloDTO->retStrProtocoloFormatadoProtocolo1();
779   - $objRelProtocoloProtocoloDTO->setDblIdProtocolo2($objProcedimentoDTO->getDblIdProcedimento());
780   - $objRelProtocoloProtocoloDTO->setStrStaAssociacao(RelProtocoloProtocoloRN::$TA_PROCEDIMENTO_ANEXADO);
781   -
782   - $objRelProtocoloProtocoloRN = new RelProtocoloProtocoloRN();
783   - $objRelProtocoloProtocoloDTO = $objRelProtocoloProtocoloRN->consultarRN0841($objRelProtocoloProtocoloDTO);
784   -
785   - $idUnidadeProcesso = $this->retornaUltimaUnidadeProcessoAberto($objRelProtocoloProtocoloDTO->getDblIdProtocolo1());
786   -
787   - }else{
788   - $idUnidadeProcesso = $this->retornaUltimaUnidadeProcessoAberto($this->getProcedimentoDTO()->getDblIdProcedimento());
789   - }
790   -
791   - $idsParticipantes = array();
792   -
793   - //Interessados
794   - // Processo Principal - Interessados
795   - $objParticipanteProcPrincDTO = new ParticipanteDTO();
796   - $objParticipanteProcPrincDTO->retNumIdParticipante();
797   - $objParticipanteProcPrincDTO->retNumIdContato();
798   - $objParticipanteProcPrincDTO->retNumIdUnidade();
799   - $objParticipanteProcPrincDTO->retStrStaParticipacao();
800   - $objParticipanteProcPrincDTO->retStrNomeContato();
801   - $objParticipanteProcPrincDTO->retNumSequencia();
802   - $objParticipanteProcPrincDTO->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento());
803   - $objParticipanteProcPrincDTO->setStrStaParticipacao(ParticipanteRN::$TP_INTERESSADO);
804   -
805   - $objParticipanteProcPrincRN = new ParticipanteRN();
806   - $arrobjParticipanteProcPrinc = $objParticipanteProcPrincRN->listarRN0189($objParticipanteProcPrincDTO);
807   - // Processo Principal - Interessados - FIM
808   -
809   - // Processo - Interessados
810   - $i=0;
811   - foreach($arrobjParticipanteProcPrinc as $objParticipanteProcPrinc){
812   - $objParticipante = new ParticipanteDTO();
813   - $objParticipante->setDblIdProtocolo($this->getProcedimentoDTO()->getDblIdProcedimento());
814   - $objParticipante->setNumIdContato($objParticipanteProcPrinc->getNumIdContato());
815   - $objParticipante->setNumIdUnidade($objParticipanteProcPrinc->getNumIdUnidade());
816   - $objParticipante->setStrStaParticipacao(ParticipanteRN::$TP_INTERESSADO);
817   - $objParticipante->setNumSequencia($i);
818   - $idsParticipantes[] = $objParticipante;
819   - $i++;
  757 +
  758 + $estadosReabrirRelacionado = array(ProtocoloRN::$TE_PROCEDIMENTO_SOBRESTADO, ProtocoloRN::$TE_PROCEDIMENTO_ANEXADO, ProtocoloRN::$TE_PROCEDIMENTO_BLOQUEADO);
  759 + /**
  760 + * Verifica se:
  761 + * 1 - Se o processo eh sigiloso (nivel de acesso global ou local eh igual a 2)
  762 + * 2 - Se o Tipo do Processo do procedimento informado nao possui um intercorrente cadastrado(neste caso irah utilizar o Intercorrente Padrao)
  763 + */
  764 + $params['diretoProcessoIndicado']=false;
  765 + if ($objCriterioIntercorrenteDTO->getStrSinCriterioPadrao() == 'S'
  766 + || $objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo() == ProtocoloRN::$NA_SIGILOSO
  767 + || $objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_SIGILOSO
  768 + || in_array($objProcedimentoDTO->getStrStaEstadoProtocolo(), $estadosReabrirRelacionado)) {
  769 +
  770 + $especificacao = 'Peticionamento Intercorrente relacionado ao Processo nº ' . $objProcedimentoDTO->getStrProtocoloProcedimentoFormatado();
  771 + $objSaidaGerarProcedimentoAPI = $this->gerarProcedimentoApi(array($objProcedimentoDTO, $objCriterioIntercorrenteDTO, $especificacao));
  772 +
  773 + $arrDadosRecibo['idProcedimentoRel'] = $params['id_procedimento'];
  774 + $arrDadosRecibo['idProcedimento'] = $objSaidaGerarProcedimentoAPI->getIdProcedimento();
  775 + $params['id_procedimento'] = $objSaidaGerarProcedimentoAPI->getIdProcedimento();
  776 + //Se possui critérios intercorrentes setta os documentos no processo existente
  777 + $this->setProcedimentoDTO($objSaidaGerarProcedimentoAPI->getIdProcedimento());
  778 + }
  779 +
  780 + //SE o criterio existe, e NAO é o criterio padrao, tenta incluir documento no proprio processo (caso o mesmo esteja aberto) ou reabrir o processo (caso o mesmo esteja fechado)
  781 + else if( $objCriterioIntercorrenteDTO != null && $objCriterioIntercorrenteDTO->getStrSinCriterioPadrao() == 'N') {
  782 +
  783 + //se for necessario, executar reabertura do processo
  784 + $reaberturaRN = new MdPetIntercorrenteReaberturaRN();
  785 +
  786 + if( $reaberturaRN->isNecessarioReabrirProcedimento( $objProcedimentoDTO ) ) {
  787 + $reaberturaRN->reabrirProcessoApi($objProcedimentoDTO);
  788 + }
  789 +
  790 + $params['diretoProcessoIndicado']=true;
  791 + $this->setProcedimentoDTO($params['id_procedimento']);
  792 +
  793 + //obter o id da maior atividade de liberacao de acesso externo para comparar na hora de limpar o historico
  794 + $atividadeConsultaDTO = new AtividadeDTO();
  795 + $atividadeConsultaDTO->retNumIdAtividade();
  796 +
  797 + $atividadeConsultaDTO->setDblIdProtocolo( $params['id_procedimento'] );
  798 + $atividadeConsultaDTO->setNumIdTarefa(TarefaRN::$TI_ACESSO_EXTERNO_SISTEMA);
  799 + $atividadeConsultaDTO->setOrd('IdAtividade', InfraDTO::$TIPO_ORDENACAO_DESC);
  800 +
  801 + $arrDTOAtividadesConsulta = $atividadeRN->listarRN0036( $atividadeConsultaDTO);
  802 +
  803 + if( $arrDTOAtividadesConsulta != null && is_array( $arrDTOAtividadesConsulta ) && count( $arrDTOAtividadesConsulta) > 0){
  804 + $this->maxIdAtividade = $arrDTOAtividadesConsulta[0]->getNumIdAtividade();
  805 + }
  806 +
  807 + }
  808 +
  809 + if($objProcedimentoDTO->getStrStaEstadoProtocolo() == 3){
  810 +
  811 + $objRelProtocoloProtocoloDTO = new RelProtocoloProtocoloDTO();
  812 + $objRelProtocoloProtocoloDTO->retDblIdProtocolo1();
  813 + $objRelProtocoloProtocoloDTO->retStrProtocoloFormatadoProtocolo1();
  814 + $objRelProtocoloProtocoloDTO->setDblIdProtocolo2($objProcedimentoDTO->getDblIdProcedimento());
  815 + $objRelProtocoloProtocoloDTO->setStrStaAssociacao(RelProtocoloProtocoloRN::$TA_PROCEDIMENTO_ANEXADO);
  816 +
  817 + $objRelProtocoloProtocoloRN = new RelProtocoloProtocoloRN();
  818 + $objRelProtocoloProtocoloDTO = $objRelProtocoloProtocoloRN->consultarRN0841($objRelProtocoloProtocoloDTO);
  819 +
  820 + $idUnidadeProcesso = $this->retornaUltimaUnidadeProcessoAberto($objRelProtocoloProtocoloDTO->getDblIdProtocolo1());
  821 +
  822 + }else{
  823 +
  824 + $idUnidadeProcesso = $this->retornaUltimaUnidadeProcessoAberto($this->getProcedimentoDTO()->getDblIdProcedimento());
  825 + }
  826 +
  827 +
  828 + if( $idUnidadeProcesso == null || $idUnidadeProcesso == ''){
  829 +
  830 + $mdPetAndamentoSigilosoRN = new MdPetIntercorrenteAndamentoSigilosoRN();
  831 + $idUnidadeProcesso = $mdPetAndamentoSigilosoRN->retornaIdUnidadeAberturaProcesso( $this->getProcedimentoDTO()->getDblIdProcedimento() );
  832 +
  833 + }
  834 +
  835 + $idsParticipantes = array();
  836 +
  837 + //Interessados
  838 + // Processo Principal - Interessados
  839 + $objParticipanteProcPrincDTO = new ParticipanteDTO();
  840 + $objParticipanteProcPrincDTO->retNumIdParticipante();
  841 + $objParticipanteProcPrincDTO->retNumIdContato();
  842 + $objParticipanteProcPrincDTO->retNumIdUnidade();
  843 + $objParticipanteProcPrincDTO->retStrStaParticipacao();
  844 + $objParticipanteProcPrincDTO->retStrNomeContato();
  845 + $objParticipanteProcPrincDTO->retNumSequencia();
  846 + $objParticipanteProcPrincDTO->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento());
  847 + $objParticipanteProcPrincDTO->setStrStaParticipacao(ParticipanteRN::$TP_INTERESSADO);
  848 +
  849 + $objParticipanteProcPrincRN = new ParticipanteRN();
  850 + $arrobjParticipanteProcPrinc = $objParticipanteProcPrincRN->listarRN0189($objParticipanteProcPrincDTO);
  851 + // Processo Principal - Interessados - FIM
  852 +
  853 + // Processo - Interessados
  854 + $i=0;
  855 + foreach($arrobjParticipanteProcPrinc as $objParticipanteProcPrinc){
  856 + $objParticipante = new ParticipanteDTO();
  857 + $objParticipante->setDblIdProtocolo($this->getProcedimentoDTO()->getDblIdProcedimento());
  858 + $objParticipante->setNumIdContato($objParticipanteProcPrinc->getNumIdContato());
  859 + $objParticipante->setNumIdUnidade($objParticipanteProcPrinc->getNumIdUnidade());
  860 + $objParticipante->setStrStaParticipacao(ParticipanteRN::$TP_INTERESSADO);
  861 + $objParticipante->setNumSequencia($i);
  862 + $idsParticipantes[] = $objParticipante;
  863 + $i++;
  864 + }
  865 +
  866 + $objMdPetParticipanteRN = new MdPetParticipanteRN();
  867 + $arrInteressado = array();
  868 + $arrInteressado[0] = $this->getProcedimentoDTO()->getDblIdProcedimento();
  869 + $arrInteressado[1] = $idsParticipantes;
  870 + //$arrInteressado[2] = $idsRemententes;
  871 + $objMdPetParticipanteRN->setInteressadosRemetentesProcedimentoDocumento( $arrInteressado );
  872 + // Processo - Interessados - FIM
  873 +
  874 +
  875 + $arrDocApi = MdPetIntercorrenteINT::montarArrDocumentoAPI($params['id_procedimento'],$params['hdnTbDocumento']);
  876 +
  877 + $arrObjReciboDocPet = $this->incluirDocumentosApi($this->getProcedimentoDTO(), $arrDocApi);
  878 +
  879 + $objMdPetReciboRN = new MdPetReciboRN();
  880 + $objReciboDTO = $objMdPetReciboRN->gerarReciboSimplificadoIntercorrente($arrDadosRecibo);
  881 +
  882 + if (count($objReciboDTO) > 0) {
  883 + $this->setReciboDTO($objReciboDTO);
  884 + $this->cadastrarReciboDocumentoAnexo(array($objReciboDTO, $arrObjReciboDocPet));
  885 +
  886 + $documentoReciboDTO = $this->montarReciboIntercorrente($params);
  887 +
  888 + //Remetentes
  889 + $idsParticipantes = array();
  890 + $objParticipante = new ParticipanteDTO();
  891 + $objParticipante->setDblIdProtocolo($documentoReciboDTO->getDblIdDocumento());
  892 + $objParticipante->setNumIdContato($this->getContatoDTOUsuarioLogado()->getNumIdContato());
  893 + $objParticipante->setNumIdUnidade($idUnidadeProcesso);
  894 + $objParticipante->setStrStaParticipacao(ParticipanteRN::$TP_REMETENTE);
  895 + $objParticipante->setNumSequencia(0);
  896 + $idsParticipantes[] = $objParticipante;
  897 +
  898 + // Recibo - Interessados
  899 + $i=0;
  900 + foreach($arrobjParticipanteProcPrinc as $objParticipanteProcPrinc){
  901 + $objParticipante = new ParticipanteDTO();
  902 + $objParticipante->setDblIdProtocolo($documentoReciboDTO->getDblIdDocumento());
  903 + $objParticipante->setNumIdContato($objParticipanteProcPrinc->getNumIdContato());
  904 + $objParticipante->setNumIdUnidade($objParticipanteProcPrinc->getNumIdUnidade());
  905 + $objParticipante->setStrStaParticipacao(ParticipanteRN::$TP_INTERESSADO);
  906 + $objParticipante->setNumSequencia($i);
  907 + $idsParticipantes[] = $objParticipante;
  908 + $i++;
  909 + }
  910 +
  911 + $objMdPetParticipanteRN = new MdPetParticipanteRN();
  912 + $arrInteressado = array();
  913 + $arrInteressado[0] = $documentoReciboDTO->getDblIdDocumento();
  914 + $arrInteressado[1] = $idsParticipantes;
  915 + //$arrInteressado[2] = $idsRemententes;
  916 +
  917 + $objMdPetParticipanteRN->setInteressadosRemetentesProcedimentoDocumento( $arrInteressado );
  918 + // Recibo - Interessados - FIM
  919 +
  920 + $this->setDocumentoRecibo($documentoReciboDTO);
  921 +
  922 + //apagando andamentos do tipo "Disponibilizado acesso externo para @INTERESSADO@"
  923 +
  924 +
  925 + $objAtividadeDTOLiberacao = new AtividadeDTO();
  926 + $objAtividadeDTOLiberacao->retTodos();
  927 + $objAtividadeDTOLiberacao->setDblIdProtocolo( $this->getProcedimentoDTO()->getDblIdProcedimento() );
  928 + $objAtividadeDTOLiberacao->setNumIdAtividade( $this->maxIdAtividade , InfraDTO::$OPER_MAIOR );
  929 + $objAtividadeDTOLiberacao->setNumIdTarefa(TarefaRN::$TI_ACESSO_EXTERNO_SISTEMA);
  930 +
  931 + $arrDTOAtividades = $atividadeRN->listarRN0036( $objAtividadeDTOLiberacao );
  932 + $atividadeRN->excluirRN0034( $arrDTOAtividades );
  933 +
  934 + $this->enviarEmail($params);
  935 +
  936 + // obtendo a ultima atividade informada para o processo, para marcar
  937 + // como nao visualizada, deixando assim o processo marcado como "vermelho"
  938 + // (status de Nao Visualizado) na listagem da tela "Controle de processos"
  939 + //trecho comentado para preservar apresentacao do "icone amarelo" na tela de Controle de Processos
  940 + /*
  941 + $atividadeRN = new AtividadeRN();
  942 + $atividadeBD = new AtividadeBD( $this->getObjInfraIBanco() );
  943 + $atividadeDTO = new AtividadeDTO();
  944 + $atividadeDTO->retTodos();
  945 + $atividadeDTO->setDblIdProtocolo( $this->getProcedimentoDTO()->getDblIdProcedimento() );
  946 + $atividadeDTO->setOrd("IdAtividade", InfraDTO::$TIPO_ORDENACAO_DESC);
  947 + $ultimaAtividadeDTO = $atividadeRN->listarRN0036( $atividadeDTO );
  948 +
  949 + //alterar a ultima atividade criada para nao visualizado
  950 + if( $ultimaAtividadeDTO != null && count( $ultimaAtividadeDTO ) > 0){
  951 + $ultimaAtividadeDTO[0]->setNumTipoVisualizacao( AtividadeRN::$TV_NAO_VISUALIZADO );
  952 + $atividadeBD->alterar( $ultimaAtividadeDTO[0] );
  953 + }
  954 + */
  955 +
  956 + // Temporários apagando
  957 + $arquivos_enviados = PaginaSEIExterna::getInstance()->getArrItensTabelaDinamica($params['hdnTbDocumento']);
  958 + foreach ($arquivos_enviados as $arquivo_enviado) {
  959 + unlink(DIR_SEI_TEMP.'/'.$arquivo_enviado[7]);
  960 + }
  961 +
  962 + return array(
  963 + 'recibo' => $objReciboDTO,
  964 + 'documento' => $documentoReciboDTO
  965 + );
  966 + //Gerar Recibo e executar javascript para fechar janela filha e redirecionar janela pai para a tela de detalhes do recibo que foi gerado]
  967 +
  968 + }
  969 +
  970 + return false;
  971 + }
  972 +
  973 + private function getDocumentoRecibo()
  974 + {
  975 + return $this->documentoRecibo;
  976 + }
  977 +
  978 + private function setDocumentoRecibo($documentoDTO)
  979 + {
  980 + $this->documentoRecibo = $documentoDTO;
  981 + }
  982 +
  983 + private function simularLogin($idUnidade)
  984 + {
  985 + SessaoSEI::getInstance()->simularLogin(null, null, SessaoSEIExterna::getInstance()->getNumIdUsuarioExterno(), $idUnidade);
  986 + $this->setUnidadeDTO($idUnidade);
  987 + }
  988 +
  989 + private function validarCadastro($params){
  990 + // Bloco de validações
  991 + $objInfraException = new InfraException();
  992 + $this->validarSenhaSei($params['senhaSEI'], $objInfraException);
  993 + $this->validarDocumentos($params['hdnTbDocumento'], $objInfraException);
  994 + $this->validarNumIdProcedimento($params['id_procedimento'], $objInfraException);
  995 + $this->validarNumIdTipoProcedimento($params['id_tipo_procedimento'], $objInfraException);
  996 + $objInfraException->lancarValidacoes();
  997 + }
  998 +
  999 + private function validarSenhaSei($senha, InfraException $objInfraException){
  1000 + if (InfraString::isBolVazia($senha)){
  1001 + $objInfraException->adicionarValidacao('Senha não informada.');
820 1002 }
821   -
822   - $objMdPetParticipanteRN = new MdPetParticipanteRN();
823   - $arrInteressado = array();
824   - $arrInteressado[0] = $this->getProcedimentoDTO()->getDblIdProcedimento();
825   - $arrInteressado[1] = $idsParticipantes;
826   - //$arrInteressado[2] = $idsRemententes;
827   - $objMdPetParticipanteRN->setInteressadosRemetentesProcedimentoDocumento( $arrInteressado );
828   - // Processo - Interessados - FIM
829   -
830   -
831   - $arrDocApi = MdPetIntercorrenteINT::montarArrDocumentoAPI($params['id_procedimento'],$params['hdnTbDocumento']);
832   -
833   - $arrObjReciboDocPet = $this->incluirDocumentosApi($this->getProcedimentoDTO(), $arrDocApi);
834   -
835   - $objMdPetReciboRN = new MdPetReciboRN();
836   - $objReciboDTO = $objMdPetReciboRN->gerarReciboSimplificadoIntercorrente($arrDadosRecibo);
837   -
838   - if (count($objReciboDTO) > 0) {
839   - $this->setReciboDTO($objReciboDTO);
840   - $this->cadastrarReciboDocumentoAnexo(array($objReciboDTO, $arrObjReciboDocPet));
841   -
842   - $documentoReciboDTO = $this->montarReciboIntercorrente($params);
843   -
844   - //Remetentes
845   - $idsParticipantes = array();
846   -
847   - $objParticipante = new ParticipanteDTO();
848   - $objParticipante->setDblIdProtocolo($documentoReciboDTO->getDblIdDocumento());
849   - $objParticipante->setNumIdContato($this->getContatoDTOUsuarioLogado()->getNumIdContato());
850   - $objParticipante->setNumIdUnidade($idUnidadeProcesso);
851   - $objParticipante->setStrStaParticipacao(ParticipanteRN::$TP_REMETENTE);
852   - $objParticipante->setNumSequencia(0);
853   - $idsParticipantes[] = $objParticipante;
854   -
855   - // Recibo - Interessados
856   - $i=0;
857   - foreach($arrobjParticipanteProcPrinc as $objParticipanteProcPrinc){
858   - $objParticipante = new ParticipanteDTO();
859   - $objParticipante->setDblIdProtocolo($documentoReciboDTO->getDblIdDocumento());
860   - $objParticipante->setNumIdContato($objParticipanteProcPrinc->getNumIdContato());
861   - $objParticipante->setNumIdUnidade($objParticipanteProcPrinc->getNumIdUnidade());
862   - $objParticipante->setStrStaParticipacao(ParticipanteRN::$TP_INTERESSADO);
863   - $objParticipante->setNumSequencia($i);
864   - $idsParticipantes[] = $objParticipante;
865   - $i++;
866   - }
867   -
868   - $objMdPetParticipanteRN = new MdPetParticipanteRN();
869   - $arrInteressado = array();
870   - $arrInteressado[0] = $documentoReciboDTO->getDblIdDocumento();
871   - $arrInteressado[1] = $idsParticipantes;
872   - //$arrInteressado[2] = $idsRemententes;
873   -
874   - $objMdPetParticipanteRN->setInteressadosRemetentesProcedimentoDocumento( $arrInteressado );
875   - // Recibo - Interessados - FIM
876   -
877   - $this->setDocumentoRecibo($documentoReciboDTO);
878   - $this->enviarEmail($params);
  1003 + $objMdPetProcessoRN = new MdPetProcessoRN();
  1004 + $objMdPetProcessoRN->validarSenha(array('senhaSEI' => $senha));
  1005 + }
  1006 +
  1007 + private function validarDocumentos($hdnTbDocumento, InfraException $objInfraException){
  1008 + if (InfraString::isBolVazia($hdnTbDocumento)){
  1009 + $objInfraException->adicionarValidacao('Nenhum documento foi enviado.');
  1010 + }
  1011 + }
  1012 +
  1013 + private function validarNumIdProcedimento($numIdProcedimento, InfraException $objInfraException){
  1014 + if (InfraString::isBolVazia($numIdProcedimento)){
  1015 + $objInfraException->adicionarValidacao('Processo não informado.');
  1016 + }
  1017 + }
  1018 +
  1019 + private function validarNumIdTipoProcedimento($numIdTipoProcedimento, InfraException $objInfraException){
  1020 + if (InfraString::isBolVazia($numIdTipoProcedimento)){
  1021 + $objInfraException->adicionarValidacao('Senha não informada.');
  1022 + }
  1023 + }
  1024 +
  1025 + private function setUnidadeDTO($numIdUnidade)
  1026 + {
  1027 + $objUnidadeConsultaDTO = new UnidadeDTO();
  1028 + $objUnidadeConsultaDTO->retTodos(true);
  1029 + $objUnidadeConsultaDTO->setNumIdUnidade($numIdUnidade);
  1030 + $objUnidadeRN = new UnidadeRN();
  1031 + $this->objUnidadeDTO = $objUnidadeRN->consultarRN0125($objUnidadeConsultaDTO);
  1032 + $this->setOrgaoDTO($this->objUnidadeDTO->getNumIdOrgao());
  1033 + }
  1034 +
  1035 + private function getUnidadeDTO()
  1036 + {
  1037 + return $this->objUnidadeDTO;
  1038 + }
  1039 +
  1040 + private function setOrgaoDTO($numIdOrgao)
  1041 + {
  1042 + $orgaoDTO = new OrgaoDTO();
  1043 + $orgaoDTO->retTodos();
  1044 + $orgaoDTO->retStrEmailContato();
  1045 + $orgaoDTO->setNumIdOrgao( $numIdOrgao );
  1046 + $orgaoDTO->setStrSinAtivo('S');
  1047 + $orgaoRN = new OrgaoRN();
  1048 + $this->objOrgaoDTO = $orgaoRN->consultarRN1352($orgaoDTO);
  1049 +
  1050 + }
  1051 +
  1052 + private function getOrgaoDTO()
  1053 + {
  1054 + return $this->objOrgaoDTO;
  1055 + }
  1056 +
  1057 + private function setCargoDTO($numIdCargo)
  1058 + {
  1059 + $cargoDTO = new CargoDTO();
  1060 + $cargoDTO->retNumIdCargo();
  1061 + $cargoDTO->retStrExpressao();
  1062 + $cargoDTO->retStrSinAtivo();
  1063 + $cargoDTO->setNumIdCargo( $numIdCargo );
  1064 + $cargoDTO->setStrSinAtivo('S');
  1065 + $cargoRN = new CargoRN();
  1066 + $this->objCargoDTO = $cargoRN->consultarRN0301($cargoDTO);
  1067 + }
  1068 +
  1069 + private function getCargoDTO()
  1070 + {
  1071 + return $this->objCargoDTO;
  1072 + }
  1073 +
  1074 + private function getUsuarioDTO()
  1075 + {
  1076 + if($this->objUsuarioDTO === null){
  1077 + $objUsuarioDTO = new UsuarioDTO();
  1078 + $objUsuarioDTO->retTodos();
  1079 + $objUsuarioDTO->setNumIdUsuario( SessaoSEIExterna::getInstance()->getNumIdUsuarioExterno() );
879 1080  
880   - // obtendo a ultima atividade informada para o processo, para marcar
881   - // como nao visualizada, deixando assim o processo marcado como "vermelho"
882   - // (status de Nao Visualizado) na listagem da tela "Controle de processos"
883   - //trecho comentado para preservar apresentacao do "icone amarelo" na tela de Controle de Processos
884   - /*
885   - $atividadeRN = new AtividadeRN();
886   - $atividadeBD = new AtividadeBD( $this->getObjInfraIBanco() );
887   - $atividadeDTO = new AtividadeDTO();
888   - $atividadeDTO->retTodos();
889   - $atividadeDTO->setDblIdProtocolo( $this->getProcedimentoDTO()->getDblIdProcedimento() );
890   - $atividadeDTO->setOrd("IdAtividade", InfraDTO::$TIPO_ORDENACAO_DESC);
891   - $ultimaAtividadeDTO = $atividadeRN->listarRN0036( $atividadeDTO );
892   -
893   - //alterar a ultima atividade criada para nao visualizado
894   - if( $ultimaAtividadeDTO != null && count( $ultimaAtividadeDTO ) > 0){
895   - $ultimaAtividadeDTO[0]->setNumTipoVisualizacao( AtividadeRN::$TV_NAO_VISUALIZADO );
896   - $atividadeBD->alterar( $ultimaAtividadeDTO[0] );
897   - }
898   - */
899   -
900   - // Temporários apagando
901   - $arquivos_enviados = PaginaSEIExterna::getInstance()->getArrItensTabelaDinamica($params['hdnTbDocumento']);
902   - foreach ($arquivos_enviados as $arquivo_enviado) {
903   - unlink(DIR_SEI_TEMP.'/'.$arquivo_enviado[7]);
904   - }
905   -
906   - return array(
907   - 'recibo' => $objReciboDTO,
908   - 'documento' => $documentoReciboDTO
909   - );
910   - //Gerar Recibo e executar javascript para fechar janela filha e redirecionar janela pai para a tela de detalhes do recibo que foi gerado]
911   -
912   - }
913   -
914   - return false;
915   - }
916   -
917   - private function getDocumentoRecibo()
918   - {
919   - return $this->documentoRecibo;
920   - }
921   -
922   - private function setDocumentoRecibo($documentoDTO)
923   - {
924   - $this->documentoRecibo = $documentoDTO;
925   - }
926   -
927   - private function simularLogin($idUnidade)
928   - {
929   - SessaoSEI::getInstance()->simularLogin(null, null, SessaoSEIExterna::getInstance()->getNumIdUsuarioExterno(), $idUnidade);
930   - $this->setUnidadeDTO($idUnidade);
931   - }
932   -
933   - private function validarCadastro($params){
934   - // Bloco de validações
935   - $objInfraException = new InfraException();
936   - $this->validarSenhaSei($params['senhaSEI'], $objInfraException);
937   - $this->validarDocumentos($params['hdnTbDocumento'], $objInfraException);
938   - $this->validarNumIdProcedimento($params['id_procedimento'], $objInfraException);
939   - $this->validarNumIdTipoProcedimento($params['id_tipo_procedimento'], $objInfraException);
940   - $objInfraException->lancarValidacoes();
941   - }
942   -
943   - private function validarSenhaSei($senha, InfraException $objInfraException){
944   - if (InfraString::isBolVazia($senha)){
945   - $objInfraException->adicionarValidacao('Senha não informada.');
946   - }
947   - $objMdPetProcessoRN = new MdPetProcessoRN();
948   - $objMdPetProcessoRN->validarSenha(array('senhaSEI' => $senha));
949   - }
950   -
951   - private function validarDocumentos($hdnTbDocumento, InfraException $objInfraException){
952   - if (InfraString::isBolVazia($hdnTbDocumento)){
953   - $objInfraException->adicionarValidacao('Nenhum documento foi enviado.');
954   - }
955   - }
956   -
957   - private function validarNumIdProcedimento($numIdProcedimento, InfraException $objInfraException){
958   - if (InfraString::isBolVazia($numIdProcedimento)){
959   - $objInfraException->adicionarValidacao('Processo não informado.');
960   - }
961   - }
962   -
963   - private function validarNumIdTipoProcedimento($numIdTipoProcedimento, InfraException $objInfraException){
964   - if (InfraString::isBolVazia($numIdTipoProcedimento)){
965   - $objInfraException->adicionarValidacao('Senha não informada.');
966   - }
967   - }
968   -
969   - private function setUnidadeDTO($numIdUnidade)
970   - {
971   - $objUnidadeConsultaDTO = new UnidadeDTO();
972   - $objUnidadeConsultaDTO->retTodos(true);
973   - $objUnidadeConsultaDTO->setNumIdUnidade($numIdUnidade);
974   - $objUnidadeRN = new UnidadeRN();
975   - $this->objUnidadeDTO = $objUnidadeRN->consultarRN0125($objUnidadeConsultaDTO);
976   - $this->setOrgaoDTO($this->objUnidadeDTO->getNumIdOrgao());
977   - }
978   -
979   - private function getUnidadeDTO()
980   - {
981   - return $this->objUnidadeDTO;
982   - }
983   -
984   - private function setOrgaoDTO($numIdOrgao)
985   - {
986   - $orgaoDTO = new OrgaoDTO();
987   - $orgaoDTO->retTodos();
988   - $orgaoDTO->retStrEmailContato();
989   - $orgaoDTO->setNumIdOrgao( $numIdOrgao );
990   - $orgaoDTO->setStrSinAtivo('S');
991   - $orgaoRN = new OrgaoRN();
992   - $this->objOrgaoDTO = $orgaoRN->consultarRN1352($orgaoDTO);
993   -
994   - }
995   -
996   - private function getOrgaoDTO()
997   - {
998   - return $this->objOrgaoDTO;
999   - }
1000   -
1001   - private function setCargoDTO($numIdCargo)
1002   - {
1003   - $cargoDTO = new CargoDTO();
1004   - $cargoDTO->retNumIdCargo();
1005   - $cargoDTO->retStrExpressao();
1006   - $cargoDTO->retStrSinAtivo();
1007   - $cargoDTO->setNumIdCargo( $numIdCargo );
1008   - $cargoDTO->setStrSinAtivo('S');
1009   - $cargoRN = new CargoRN();
1010   - $this->objCargoDTO = $cargoRN->consultarRN0301($cargoDTO);
1011   - }
1012   -
1013   - private function getCargoDTO()
1014   - {
1015   - return $this->objCargoDTO;
1016   - }
1017   -
1018   - private function getUsuarioDTO()
1019   - {
1020   - if($this->objUsuarioDTO === null){
1021   - $objUsuarioDTO = new UsuarioDTO();
1022   - $objUsuarioDTO->retTodos();
1023   - $objUsuarioDTO->setNumIdUsuario( SessaoSEIExterna::getInstance()->getNumIdUsuarioExterno() );
1024   -
1025   - $objUsuarioRN = new UsuarioRN();
1026   - $this->objUsuarioDTO = $objUsuarioRN->consultarRN0489( $objUsuarioDTO );
1027   - }
1028   - return $this->objUsuarioDTO;
1029   -
1030   - }
1031   -
1032   - private function setProcedimentoDTO($idProcedimento)
1033   - {
1034   - $objProcedimentoDTO = new ProcedimentoDTO();
1035   - $objProcedimentoRN = new ProcedimentoRN();
1036   - $objProcedimentoDTO->setDblIdProcedimento($idProcedimento);
1037   - $objProcedimentoDTO->retDblIdProcedimento();
1038   - $objProcedimentoDTO->retStrProtocoloProcedimentoFormatado();
1039   - $objProcedimentoDTO->retTodos(true);
1040   - $this->objProcedimentoDTO = $objProcedimentoRN->consultarRN0201($objProcedimentoDTO);
1041   - }
1042   -
1043   - private function getProcedimentoDTO()
1044   - {
1045   - return $this->objProcedimentoDTO;
1046   - }
1047   -
1048   - private function getSenha(){
1049   - return $this->senha;
1050   - }
1051   -
1052   - private function setSenha($senha){
1053   - $this->senha = $senha;
1054   - }
1055   -
1056   - private function setReciboDTO($reciboDTO){
1057   - $this->reciboDTO = $reciboDTO;
1058   - }
1059   -
1060   - private function getReciboDTO()
1061   - {
1062   - return $this->reciboDTO;
1063   - }
1064   -
1065   - private function setParticipante($participanteDTO)
1066   - {
1067   - $this->participantesDTO = $participanteDTO;
1068   - }
1069   -
1070   - private function getParticipanteDTO()
1071   - {
1072   - return $this->participantesDTO;
1073   - }
1074   -
1075   - private function addDocumentos($documento){
1076   - $this->arrDocumentos[] = $documento;
1077   - }
1078   -
1079   - private function getDocumentos(){
1080   - return $this->arrDocumentos;
1081   - }
1082   -
  1081 + $objUsuarioRN = new UsuarioRN();
  1082 + $this->objUsuarioDTO = $objUsuarioRN->consultarRN0489( $objUsuarioDTO );
  1083 + }
  1084 + return $this->objUsuarioDTO;
  1085 +
  1086 + }
  1087 +
  1088 + private function setProcedimentoDTO($idProcedimento)
  1089 + {
  1090 + $objProcedimentoDTO = new ProcedimentoDTO();
  1091 + $objProcedimentoRN = new ProcedimentoRN();
  1092 + $objProcedimentoDTO->setDblIdProcedimento($idProcedimento);
  1093 + $objProcedimentoDTO->retDblIdProcedimento();
  1094 + $objProcedimentoDTO->retStrProtocoloProcedimentoFormatado();
  1095 + $objProcedimentoDTO->retTodos(true);
  1096 + $this->objProcedimentoDTO = $objProcedimentoRN->consultarRN0201($objProcedimentoDTO);
  1097 + }
  1098 +
  1099 + private function getProcedimentoDTO()
  1100 + {
  1101 + return $this->objProcedimentoDTO;
  1102 + }
  1103 +
  1104 + private function getSenha(){
  1105 + return $this->senha;
  1106 + }
  1107 +
  1108 + private function setSenha($senha){
  1109 + $this->senha = $senha;
  1110 + }
  1111 +
  1112 + private function setReciboDTO($reciboDTO){
  1113 + $this->reciboDTO = $reciboDTO;
  1114 + }
  1115 +
  1116 + private function getReciboDTO()
  1117 + {
  1118 + return $this->reciboDTO;
  1119 + }
  1120 +
  1121 + private function setParticipante($participanteDTO)
  1122 + {
  1123 + $this->participantesDTO = $participanteDTO;
  1124 + }
  1125 +
  1126 + private function getParticipanteDTO()
  1127 + {
  1128 + return $this->participantesDTO;
  1129 + }
  1130 +
  1131 + private function addDocumentos($documento){
  1132 + $this->arrDocumentos[] = $documento;
  1133 + }
  1134 +
  1135 + private function getDocumentos(){
  1136 + return $this->arrDocumentos;
  1137 + }
  1138 +
1083 1139 private function getContatoDTOUsuarioLogado(){
1084   -
  1140 +
1085 1141 $usuarioRN = new UsuarioRN();
1086 1142 $usuarioDTO = new UsuarioDTO();
1087 1143 $usuarioDTO->retNumIdUsuario();
... ... @@ -1089,84 +1145,84 @@ class MdPetIntercorrenteProcessoRN extends MdPetProcessoRN {
1089 1145 $usuarioDTO->retNumIdContato();
1090 1146 $usuarioDTO->retStrNomeContato();
1091 1147 $usuarioDTO = $usuarioRN->consultarRN0489( $usuarioDTO );
1092   -
  1148 +
1093 1149 $contatoRN = new ContatoRN();
1094 1150 $contatoDTO = new ContatoDTO();
1095 1151 $contatoDTO->retTodos();
1096 1152 $contatoDTO->setNumIdContato( $usuarioDTO->getNumIdContato() );
1097 1153 $contatoDTO = $contatoRN->consultarRN0324( $contatoDTO );
1098   -
  1154 +
1099 1155 return $contatoDTO;
1100 1156 }
1101   -
1102   - /** $arquivos_enviados[0] recebe idLinha
1103   - * $arquivos_enviados[1] recebe idTipoDocumento
1104   - * $arquivos_enviados[2] recebe complementoTipoDocumento
1105   - * $arquivos_enviados[3] recebe idNivelAcesso
1106   - * $arquivos_enviados[4] recebe idHipoteseLegal
1107   - * $arquivos_enviados[5] recebe idFormato
1108   - * $arquivos_enviados[6] recebe idTipoConferencia
1109   - * $arquivos_enviados[7] recebe nomeArquivoHash
1110   - * $arquivos_enviados[8] recebe tamanhoArquivo
1111   - * $arquivos_enviados[9] recebe nomeArquivo
1112   - * $arquivos_enviados[10] recebe dataHora
1113   - * $arquivos_enviados[11] recebe tamanhoArquivoFormatado
1114   - * $arquivos_enviados[12] recebe documento
1115   - * $arquivos_enviados[13] recebe nivelAcesso
1116   - * $arquivos_enviados[14] recebe formato
1117   - */
  1157 +
  1158 + /** $arquivos_enviados[0] recebe idLinha
  1159 + * $arquivos_enviados[1] recebe idTipoDocumento
  1160 + * $arquivos_enviados[2] recebe complementoTipoDocumento
  1161 + * $arquivos_enviados[3] recebe idNivelAcesso
  1162 + * $arquivos_enviados[4] recebe idHipoteseLegal
  1163 + * $arquivos_enviados[5] recebe idFormato
  1164 + * $arquivos_enviados[6] recebe idTipoConferencia
  1165 + * $arquivos_enviados[7] recebe nomeArquivoHash
  1166 + * $arquivos_enviados[8] recebe tamanhoArquivo
  1167 + * $arquivos_enviados[9] recebe nomeArquivo
  1168 + * $arquivos_enviados[10] recebe dataHora
  1169 + * $arquivos_enviados[11] recebe tamanhoArquivoFormatado
  1170 + * $arquivos_enviados[12] recebe documento
  1171 + * $arquivos_enviados[13] recebe nivelAcesso
  1172 + * $arquivos_enviados[14] recebe formato
  1173 + */
1118 1174 public static function removerArquivoIntecorrenteTemp($arquivos_enviado){
1119   - //se for varios mandado pelo hdn
1120   - if(is_string($arquivos_enviado)){
1121   - $arquivos_enviados = PaginaSEIExterna::getInstance()->getArrItensTabelaDinamica($arquivos_enviado);
1122   -
1123   - $xml = null;
1124   - foreach ($arquivos_enviados as $arquivo_enviado) {
1125   - $arquivo = DIR_SEI_TEMP.'/'.$arquivo_enviado[7];
1126   - if(file_exists($arquivo)){
1127   - unlink($arquivo);
1128   - $xml = "<success>true</success>";
1129   - }
1130   - }
1131   - }else{
1132   - $arquivo = DIR_SEI_TEMP.'/'.$arquivos_enviado[7];
1133   - if(file_exists($arquivo)){
1134   - unlink($arquivo);
1135   - $xml = "<success>true</success>";
1136   - }
1137   - }
1138   -
1139   - if($xml)
1140   - return $xml;
1141   -
1142   - return "<success>false</success>";
1143   - }
1144   -
1145   -
1146   - /**
1147   - * $arquivos_enviados[0] recebe nome,
1148   - * $arquivos_enviados[1] recebe dataHora,
1149   - * $arquivos_enviados[2] recebe tamanhoFormatado,
1150   - * $arquivos_enviados[3] recebe documento,
1151   - * $arquivos_enviados[4] recebe nivelAcesso,
1152   - * $arquivos_enviados[5] recebe hipoteseLegal,
1153   - * $arquivos_enviados[6] recebe formatoDocumento,
1154   - * $arquivos_enviados[7] recebe tipoConferencia,
1155   - * $arquivos_enviados[8] recebe nomeUpload,
1156   - * $arquivos_enviados[9] recebe idTpoPrincipal,
1157   - * $arquivos_enviados[10] recebe strComplemento,
1158   - * $arquivos_enviados[11] recebe formatoDocumentoLbl,
1159   - * $arquivos_enviados[12] recebe ''
1160   - */
1161   - public static function removerArquivoTemp($arquivos_enviado){
1162   - $arquivo = DIR_SEI_TEMP.'/'.$arquivos_enviado[8];
1163   - if(file_exists($arquivo)){
1164   - unlink($arquivo);
1165   - return "<success>true</success>";
1166   - }
1167   -
1168   - return "<success>false</success>";
1169   - }
1170   -
  1175 + //se for varios mandado pelo hdn
  1176 + if(is_string($arquivos_enviado)){
  1177 + $arquivos_enviados = PaginaSEIExterna::getInstance()->getArrItensTabelaDinamica($arquivos_enviado);
  1178 +
  1179 + $xml = null;
  1180 + foreach ($arquivos_enviados as $arquivo_enviado) {
  1181 + $arquivo = DIR_SEI_TEMP.'/'.$arquivo_enviado[7];
  1182 + if(file_exists($arquivo)){
  1183 + unlink($arquivo);
  1184 + $xml = "<success>true</success>";
  1185 + }
  1186 + }
  1187 + }else{
  1188 + $arquivo = DIR_SEI_TEMP.'/'.$arquivos_enviado[7];
  1189 + if(file_exists($arquivo)){
  1190 + unlink($arquivo);
  1191 + $xml = "<success>true</success>";
  1192 + }
  1193 + }
  1194 +
  1195 + if($xml)
  1196 + return $xml;
  1197 +
  1198 + return "<success>false</success>";
  1199 + }
  1200 +
  1201 +
  1202 + /**
  1203 + * $arquivos_enviados[0] recebe nome,
  1204 + * $arquivos_enviados[1] recebe dataHora,
  1205 + * $arquivos_enviados[2] recebe tamanhoFormatado,
  1206 + * $arquivos_enviados[3] recebe documento,
  1207 + * $arquivos_enviados[4] recebe nivelAcesso,
  1208 + * $arquivos_enviados[5] recebe hipoteseLegal,
  1209 + * $arquivos_enviados[6] recebe formatoDocumento,
  1210 + * $arquivos_enviados[7] recebe tipoConferencia,
  1211 + * $arquivos_enviados[8] recebe nomeUpload,
  1212 + * $arquivos_enviados[9] recebe idTpoPrincipal,
  1213 + * $arquivos_enviados[10] recebe strComplemento,
  1214 + * $arquivos_enviados[11] recebe formatoDocumentoLbl,
  1215 + * $arquivos_enviados[12] recebe ''
  1216 + */
  1217 + public static function removerArquivoTemp($arquivos_enviado){
  1218 + $arquivo = DIR_SEI_TEMP.'/'.$arquivos_enviado[8];
  1219 + if(file_exists($arquivo)){
  1220 + unlink($arquivo);
  1221 + return "<success>true</success>";
  1222 + }
  1223 +
  1224 + return "<success>false</success>";
  1225 + }
  1226 +
1171 1227 }
1172 1228 ?>
1173 1229 \ No newline at end of file
... ...
sip/scripts/sip_atualizar_versao_modulo_peticionamento.php
... ... @@ -8,7 +8,7 @@
8 8  
9 9 require_once dirname(__FILE__).'/../web/Sip.php';
10 10  
11   -class AtualizadorSipModuloPeticionamentoRN extends InfraRN {
  11 +class MdPetAtualizadorSipRN extends InfraRN {
12 12  
13 13 private $numSeg = 0;
14 14 private $versaoAtualDesteModulo = '1.1.0';
... ... @@ -1213,7 +1213,7 @@ try{
1213 1213  
1214 1214 SessaoSip::getInstance(false);
1215 1215  
1216   - $objVersaoRN = new AtualizadorSipModuloPeticionamentoRN();
  1216 + $objVersaoRN = new MdPetAtualizadorSipRN();
1217 1217 $objVersaoRN->atualizarVersao();
1218 1218  
1219 1219 }catch(Exception $e){
... ...