Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Adicionar funcionalidade para bloco de tramite externo #418

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -171,9 +171,8 @@ destroy: .env
down: .env
$(CMD_COMPOSE_FUNC) stop


# make teste=TramiteProcessoComDevolucaoTest test-functional
test-functional: .env $(FILE_VENDOR_FUNCIONAL) up
test-functional: .env $(FILE_VENDOR_FUNCIONAL) up vendor
$(CMD_COMPOSE_FUNC) run --rm php-test-functional /tests/vendor/bin/phpunit -c /tests/phpunit.xml /tests/tests/$(addsuffix .php,$(teste)) ;


Expand Down Expand Up @@ -238,4 +237,8 @@ tramitar-pendencias-silent:
stop-test-container:
docker stop $$(docker ps -a -q --filter="name=php-test")

vendor: composer.json
$(CMD_COMPOSE_FUNC) run -w /tests php-test-functional bash -c './composer.phar install'



5 changes: 5 additions & 0 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@
"php": "7.3.12"
}
},
"autoload-dev": {
"psr-4": {
"Tests\\": "sei/"
}
},
"require-dev": {
"php": "7.3.12",
"phpunit/phpunit": "*",
Expand Down
135 changes: 81 additions & 54 deletions src/PENIntegracao.php

Large diffs are not rendered by default.

14 changes: 14 additions & 0 deletions src/bd/TramitaEmBlocoProtocoloBD.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?php

require_once DIR_SEI_WEB.'/SEI.php';

/**
* Classe gererica de persistência com o banco de dados
*/
class TramitaEmBlocoProtocoloBD extends InfraBD {

public function __construct(InfraIBanco $objInfraIBanco) {
parent::__construct($objInfraIBanco);
}

}
13 changes: 13 additions & 0 deletions src/bd/TramiteEmBlocoBD.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php

require_once DIR_SEI_WEB.'/SEI.php';

/**
* Classe gererica de persistência com o banco de dados
*/
class TramiteEmBlocoBD extends InfraBD {

public function __construct(InfraIBanco $objInfraIBanco) {
parent::__construct($objInfraIBanco);
}
}
58 changes: 58 additions & 0 deletions src/dto/TramitaEmBlocoProtocoloDTO.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
<?php
require_once DIR_SEI_WEB . '/SEI.php';

/**
* Data Transfer Object de parâmetros do módulo PEN
*/
class TramitaEmBlocoProtocoloDTO extends InfraDTO {

public function getStrNomeTabela() {
return 'md_pen_tramita_em_bloco_protocolo';
}

public function getStrNomeSequenciaNativa() {
return 'md_pen_seq_tramita_em_bloco_protocolo';
}

public function montar() {

$this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'Id', 'id');
$this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DBL, 'IdProtocolo', 'id_protocolo');
$this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdTramitaEmBloco', 'id_tramita_em_bloco');
$this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'Anotacao', 'anotacao');
$this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'Sequencia', 'sequencia');
$this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'IdxRelBlocoProtocolo', 'idx_rel_bloco_protocolo');

$this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_DBL, 'IdProtocoloProtocolo', 'p1.id_protocolo', 'protocolo p1');
$this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'ProtocoloFormatadoProtocolo', 'p1.protocolo', 'protocolo p1');
$this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'StaProtocoloProtocolo', 'p1.sta_protocolo', 'protocolo p1');
$this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'StaNivelAcessoGlobalProtocolo', 'p1.sta_nivel_acesso_global', 'protocolo p1');
$this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'IdUnidadeBloco', 'tb1.id_unidade', 'md_pen_tramita_em_bloco tb1');
$this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'IdUsuario', 'tb1.id_usuario', 'md_pen_tramita_em_bloco tb1');
$this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'StaTipoBloco', 'sta_tipo', 'md_pen_tramita_em_bloco tb1');
$this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'StaEstadoBloco', 'sta_estado', 'md_pen_tramita_em_bloco tb1');
$this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'IdProcedimento', 'pe.id_procedimento', 'md_pen_processo_eletronico pe');
$this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'NumeroRegistro', 'pe.numero_registro', 'md_pen_processo_eletronico pe');
$this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'IdTramite', 'pt.id_tramite', 'md_pen_tramite pt');
$this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'StaEstadoProtocolo', 'p1.sta_estado', 'protocolo p1');

$this->adicionarAtributo(InfraDTO::$PREFIXO_OBJ,'TramiteDTO');
$this->adicionarAtributo(InfraDTO::$PREFIXO_OBJ,'AtividadeDTO');
$this->adicionarAtributo(InfraDTO::$PREFIXO_OBJ,'ProtocoloDTO');
$this->adicionarAtributo(InfraDTO::$PREFIXO_OBJ,'PenLoteProcedimentoDTO');
$this->adicionarAtributo(InfraDTO::$PREFIXO_STR,'PalavrasPesquisa');
$this->adicionarAtributo(InfraDTO::$PREFIXO_STR,'SinAberto');
$this->adicionarAtributo(InfraDTO::$PREFIXO_NUM,'StaIdTarefa');
$this->adicionarAtributo(InfraDTO::$PREFIXO_STR,'SinObteveRecusa');

$this->configurarPK('Id', InfraDTO::$TIPO_PK_NATIVA);
$this->configurarPK('IdProtocolo',InfraDTO::$TIPO_PK_INFORMADO);
$this->configurarPK('IdTramitaEmBloco',InfraDTO::$TIPO_PK_INFORMADO);

$this->configurarFK('IdProtocolo', 'protocolo p1', 'p1.id_protocolo');
$this->configurarFK('IdTramitaEmBloco', 'md_pen_tramita_em_bloco tb1', 'tb1.id');
$this->configurarFK('IdProtocolo', 'md_pen_processo_eletronico pe', 'pe.id_procedimento', InfraDTO::$TIPO_FK_OPCIONAL);
$this->configurarFK('NumeroRegistro', 'md_pen_tramite pt', 'pt.numero_registro', InfraDTO::$TIPO_FK_OPCIONAL);
}
}
?>
84 changes: 84 additions & 0 deletions src/dto/TramiteEmBlocoDTO.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
<?php

require_once DIR_SEI_WEB.'/SEI.php';

class TramiteEmBlocoDTO extends InfraDTO {

public function getStrNomeTabela() {
return 'md_pen_tramita_em_bloco';
}

public function getStrNomeSequenciaNativa(){
return 'md_pen_seq_tramita_em_bloco';
}

public function montar() {

$this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM,
'Id',
'id');

$this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM,
'IdUnidade',
'id_unidade');

$this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM,
'IdUsuario',
'id_usuario');

$this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR,
'Descricao',
'descricao');

$this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR,
'IdxBloco',
'idx_bloco');

$this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR,
'StaTipo',
'sta_tipo');

$this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR,
'StaEstado',
'sta_estado');

$this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR,
'SiglaUnidade',
'uc.sigla',
'unidade uc');

$this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR,
'DescricaoUnidade',
'uc.descricao',
'unidade uc');

$this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR,
'SiglaUnidadeRelBlocoUnidade',
'ud.sigla',
'unidade ud');

$this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR,
'DescricaoUnidadeRelBlocoUnidade',
'ud.descricao',
'unidade ud');

$this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR,
'SiglaUsuario',
'sigla',
'usuario');

$this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR,
'NomeUsuario',
'nome',
'usuario');

$this->adicionarAtributo(InfraDTO::$PREFIXO_STR,'TipoDescricao');
$this->adicionarAtributo(InfraDTO::$PREFIXO_STR,'PalavrasPesquisa');

$this->configurarPK('Id', InfraDTO::$TIPO_PK_NATIVA );

$this->configurarFK('IdUsuario', 'usuario', 'id_usuario');
$this->configurarFK('IdUnidade', 'unidade uc', 'uc.id_unidade');
}
}
?>
Binary file added src/imagens/em_processamento.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/imagens/falhou.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/imagens/nao_iniciado.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
26 changes: 26 additions & 0 deletions src/imagens/pen_processo_bloco.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
44 changes: 42 additions & 2 deletions src/pen_expedir_lote.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,33 @@
$strDiretorioModulo = PENIntegracao::getDiretorio();

$arrProtocolosOrigem = array();
$arrProtocolosOrigem = array_merge($objPaginaSEI->getArrStrItensSelecionados('Gerados'), $objPaginaSEI->getArrStrItensSelecionados('Recebidos'), $objPaginaSEI->getArrStrItensSelecionados('Detalhado'));
$tramiteEmBloco = isset($_GET['tramite_em_bloco']) ? $_GET['tramite_em_bloco'] : null;
if ($tramiteEmBloco == 1) {
if (isset($_GET['id_tramita_em_bloco'])) {
$objTramitaEmBlocoProtocoloDTO = new TramitaEmBlocoProtocoloDTO();
$objTramitaEmBlocoProtocoloDTO->setNumIdTramitaEmBloco($_GET['id_tramita_em_bloco']);
$objTramitaEmBlocoProtocoloDTO->retDblIdProtocolo();
$objTramitaEmBlocoProtocoloDTO->retNumIdTramitaEmBloco();
} else {
$arrIdRelBlocoProtocoloSelecionado = $objPaginaSEI->getArrStrItensSelecionados();
$objTramitaEmBlocoProtocoloDTO = new TramitaEmBlocoProtocoloDTO();
$objTramitaEmBlocoProtocoloDTO->setNumId($arrIdRelBlocoProtocoloSelecionado, InfraDTO::$OPER_IN);
$objTramitaEmBlocoProtocoloDTO->retDblIdProtocolo();
$objTramitaEmBlocoProtocoloDTO->retNumIdTramitaEmBloco();
}

$objTramitaEmBlocoProtocoloRN = new TramitaEmBlocoProtocoloRN();
$arrTramiteEmBlocoProtocolo = $objTramitaEmBlocoProtocoloRN->listar($objTramitaEmBlocoProtocoloDTO);
$idTramiteEmBloco = $arrTramiteEmBlocoProtocolo[0]->getNumIdTramitaEmBloco();
$strParametros .= '&id_bloco=' . $idTramiteEmBloco;
foreach ($arrTramiteEmBlocoProtocolo as $i => $tramiteEmBlocoProtocolo) {
$arrProtocolosOrigem[] = $tramiteEmBlocoProtocolo->getDblIdProtocolo();
}
} else {
$idTramiteEmBloco = null;
$arrProtocolosOrigem = array_merge($objPaginaSEI->getArrStrItensSelecionados('Gerados'), $objPaginaSEI->getArrStrItensSelecionados('Recebidos'), $objPaginaSEI->getArrStrItensSelecionados('Detalhado'));
}


if (count($arrProtocolosOrigem)==0){
$arrProtocolosOrigem = explode(',', $_POST['hdnIdProcedimento']);
Expand All @@ -45,7 +71,7 @@
switch ($_GET['acao']) {

case 'pen_expedir_lote':
$strTitulo = 'Envio Externo de Processo em Lote';
$strTitulo = $tramiteEmBloco == 1 ? 'Envio Externo de Processos do Bloco de Trâmite' : 'Envio Externo de Processo em Lote';
$arrComandos[] = '<button type="button" accesskey="E" onclick="enviarForm(event)" value="Enviar" class="infraButton" style="width:8%;"><span class="infraTeclaAtalho">E</span>nviar</button>';
$arrComandos[] = '<button type="button" accesskey="C" name="btnCancelar" value="Cancelar" onclick="location.href=\'' . $objPaginaSEI->formatarXHTML($objSessaoSEI->assinarLink('controlador.php?acao=' . $objPaginaSEI->getAcaoRetorno() . '&acao_origem=' . $_GET['acao'] . '&acao_destino=' . $_GET['acao'] . $strParametros)) . '\';" class="infraButton"><span class="infraTeclaAtalho">C</span>ancelar</button>';

Expand Down Expand Up @@ -109,6 +135,19 @@
$ret = $objPenExpedirLoteRN->cadastrarLote($objPenExpedirLoteDTO);
$bolBotaoFecharCss = InfraUtil::compararVersoes(SEI_VERSAO, ">", "4.0.1");

// Atualiza estado do bloco em tramite para em processamento
if (isset($_POST['hdIdTramiteEmBloco']) && ($_POST['hdIdTramiteEmBloco'] != null && $_POST['hdIdTramiteEmBloco'] != '')) {
$strParametros .= '&id_bloco=' . $_POST['hdIdTramiteEmBloco'];
$strLinkProcedimento = $objPaginaSEI->formatarXHTML($objSessaoSEI->assinarLink('controlador.php?acao=' . $objPaginaSEI->getAcaoRetorno() . '&acao_origem=' . $_GET['acao'] . '&acao_destino=' . $_GET['acao'] . $strParametros));

$objTramiteEmBlocoDTO = new TramiteEmBlocoDTO();
$objTramiteEmBlocoDTO->setNumId($_POST['hdIdTramiteEmBloco']);
$objTramiteEmBlocoDTO->setStrStaEstado(TramiteEmBlocoRN::$TE_DISPONIBILIZADO);

$objTramiteEmBlocoRN = new TramiteEmBlocoRN();
$objTramiteEmBlocoRN->alterar($objTramiteEmBlocoDTO);
}

// Muda situação da barra de progresso para Concluído
echo "<script type='text/javascript'>sinalizarStatusConclusao('$strLinkProcedimento','$bolBotaoFecharCss');</script> ";
} catch(\Exception $e) {
Expand Down Expand Up @@ -402,6 +441,7 @@ function enviarForm(event){
<input type="hidden" id="hdnIdProcedimento" name="hdnIdProcedimento" value="<?=implode(',', $arrProtocolosOrigem) ?>" />
<input type="hidden" id="hdnErrosValidacao" name="hdnErrosValidacao" value="<?=$bolErrosValidacao ?>" />
<input type="hidden" id="hdnUnidadesAdministrativas" name="hdnUnidadesAdministrativas" value="" />
<input type="hidden" id="hdIdTramiteEmBloco" name="hdIdTramiteEmBloco" value="<?= $idTramiteEmBloco ?>"/>

</form>
<?php
Expand Down
Loading
Loading